पोस्ट करते समय JSON त्रुटि किसी साइट पर JSON डेटा भेजने का प्रयास करते समय मुझे एक त्रुटि मिलती है। लेकिन जब मैं साइट की जांच करता हूं, तो मुझे लगता है कि जेसन में सभी डेटा भेजा गया था और सही है।जेएसओएन
त्रुटि मैं मिलता है:
Error: Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
कोड रहा है:
let json = [
"name": "john",
"last name": "smith"
]
do{
let jsonData = try NSJSONSerialization.dataWithJSONObject(json, options: .PrettyPrinted)
let url = NSURL(string: website)
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.HTTPBody = jsonData
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
if error != nil{
print("Error: \(error)")
return
}
do {
let result = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:AnyObject]
print("Result: \(result)")
} catch {
print("Error: \(error)")
}
}
task.resume()
} catch {
print(error)
}
जब मैं टुकड़े के लिए अनुमति देते हैं:
try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
मैं एक त्रुटि मिलती है:
Error: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}
मैं बदल दिया है:
try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
try NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.AllowFragments)
करने के लिए और मैं अब कोई त्रुटि मिलती है।
जब मैं कोशिश करता हूं कि मुझे एक और त्रुटि मिलती है: – dozo
मेरे अनुभव में, यह समस्या तब होती है जब सर्वर से प्रतिक्रिया JSON ऑब्जेक्ट या सरणी नहीं होती है। बस एक सरणी में प्रतिक्रिया लपेटने की कोशिश करें। –
यह सर्वर पर किया जाना है। मुझे नहीं पता कि डेटा कैसे उत्पन्न होता है (PHP, .NET, JS, ...) लेकिन आपको इसके आसपास '[]' या '{}' जोड़ना होगा। –