मैं निम्नलिखित शब्दकोश जो JSONJSON के शब्दकोश तेज 3
कोlet store = [
"newTask" : [
"project_name": "iOS",
"total_time":0,
"color":"blue"
]
]
मैं निम्नलिखित कोड का उपयोग कर इस serialising हूँ और फिर एक बनाने http बदल जाती है के साथ एक पोस्ट अनुरोध करने के लिए कोशिश कर रहा हूँ में दो बार धारावाहिक की जा रही -POST अनुरोध निम्न विकल्पों का उपयोग:
let jsonData = try? JSONSerialization.data(withJSONObject: store)
var request = URLRequest(url: URL(string: "http://localhost:3000/store")!)
request.httpMethod = "POST"
request.httpBody = jsonData
मैं भी निम्नलिखित db.json फ़ाइल
{
"store": [
{
"id": 0,
"ios": {
"project_name": "iOS",
"total_time": 0,
"color": "blue"
}
},
{
"id": 1,
"elm": {
"project_name": "elm",
"total_time": 0,
"color": "blue"
}
}
]
}
के साथ एक json-सर्वर
https://github.com/typicode/json-server चला रहा हूँ
समस्या मैं कर रहा हूँ कि DB में नए जोड़े गए आइटम निम्न स्वरूप के साथ गलत दिखाई देता है:
{
"{\"newTask\":{\"project_name\":\"iOS\",\"total_time\":0,\"color\":\"blue\"}}": "",
"id": 10
},
मैं क्यों यह कुंजी के रूप में पूरे शब्दकोश serialising है के रूप में अनिश्चित हूं और उसके बाद एक खाली मूल्य के रूप में स्ट्रिंग।
अद्यतन
यहाँ कोड है कि सर्वर के लिए पदों यह है:
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()
एक तरफ ध्यान दें के रूप में, मैं डाकिया के माध्यम से इस pining की कोशिश की है और यह सब ठीक काम करता है। नीचे इसका एक स्क्रीनशॉट संलग्न करना।
किसी भी मदद की सराहना की जाएगी, धन्यवाद!
@EricAya इतनी जल्दी संपर्क में आने के लिए धन्यवाद! मैंने उपर्युक्त पोस्ट को http अनुरोध पोस्ट करने के अपडेट के साथ अद्यतन किया है और यह समझाते हुए कि डाकिया पर एक ही अनुरोध ठीक काम करता है। –
@EricAya मैंने इसे बदल दिया है ताकि कुंजी नाम बिल्कुल वही हो। ऐसा लगता है कि डाकिया पर ठीक काम करता है। समस्याएं HTTP अनुरोध या सीरियलाइजेशन से होने वाली सबसे अधिक संभावना से संबंधित हैं। –