Tôi đang cố gắng để thực hiện một yêu cầu bài với các từ điển sau đó được chuyển thành JSONđiển để JSON được đăng hai lần trong 3 nhanh chóng
let store = [
"newTask" : [
"project_name": "iOS",
"total_time":0,
"color":"blue"
]
]
Tôi serialising này bằng cách sử dụng đoạn mã sau và sau đó thực hiện một http yêu cầu -POST sử dụng các tùy chọn sau:
let jsonData = try? JSONSerialization.data(withJSONObject: store)
var request = URLRequest(url: URL(string: "http://localhost:3000/store")!)
request.httpMethod = "POST"
request.httpBody = jsonData
tôi cũng đang chạy một json-server https://github.com/typicode/json-server với file db.json sau
{
"store": [
{
"id": 0,
"ios": {
"project_name": "iOS",
"total_time": 0,
"color": "blue"
}
},
{
"id": 1,
"elm": {
"project_name": "elm",
"total_time": 0,
"color": "blue"
}
}
]
}
Vấn đề tôi đang gặp là các mục mới được bổ sung trong db trông không đúng với định dạng sau:
{
"{\"newTask\":{\"project_name\":\"iOS\",\"total_time\":0,\"color\":\"blue\"}}": "",
"id": 10
},
Tôi không chắc chắn là tại sao nó được serialising toàn bộ từ điển như là chìa khóa và sau đó là một sản phẩm nào chuỗi là giá trị.
Cập nhật
Dưới đây là đoạn code mà bài viết này đến máy chủ:
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { // check for fundamental networking error
print("error=\(error)")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
do {
if let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] {
print(json)
}
} catch let error {
print(error.localizedDescription)
}
}
task.resume()
Là một mặt lưu ý, tôi đã cố gắng gầy này qua người đưa thư và tất cả các công trình ok. Đính kèm ảnh chụp màn hình của nó bên dưới.
Bất kỳ trợ giúp nào sẽ được đánh giá cao, Cảm ơn!
@EricAya Cảm ơn bạn đã liên hệ rất nhanh! Tôi đã cập nhật các bài viết trên với một bản cập nhật gửi yêu cầu http cũng như giải thích rằng cùng một yêu cầu về postman hoạt động ok. –
@EricAya Tôi đã thay đổi nó để tên khóa chính xác như nhau. Dường như làm việc tốt trên người đưa thư. Các vấn đề có nhiều khả năng liên quan đến yêu cầu HTTP hoặc serialization đang xảy ra. –