Senden eines JSON von einem iOS-Gerät mit URLSession
. Ich schicke:Node.js JSON von iOS URLSession body
let body = try? JSONSerialization.data(withJSONObject: order.toJSON())
// { "customer": 123 }
request.httpBody = body
request.httpMethod = "POST"
URLSession.shared.dataTask(with: request) { (data, response, error) in
...
}.resume()
Wenn ich den Körper nur danach zu drucken, ich eine gültige JSON erhalten:
print(String(data: request.httpBody!, encoding: .utf8)!)
// {"customer":123}
Dann in der Server-Seite nodejs
Ich habe den folgenden Code (Knoten oder Javascript sind nicht meine Hauptdomain):
module.exports = function (ctx, req, res) {
console.log(ctx.body)
// { '{"customer": 123}': '' }
...
Meine Frage ist, warum es die ursprüngliche JSON JSON hinzugefügt wird key
und wie sie vermieden werden?
Die Verwendung von JSON.parse
funktioniert nicht, da es das Loch erhält JSON ist ein Schlüssel eines leeren Werts (wie im Beispiel).
Leider nicht klar sein. 'toJSON()' ist eine benutzerdefinierte Methode, gibt ein '[String: Any]' Wörterbuch zurück. Ich werde einen Blick auf Ihr Snippet werfen und versuchen, das Diktat direkt zu codieren, danke – aramusss
Nun, sieht so aus, als wäre das Problem genau dort. Sie stringieren den Anfragetext bereits über 'JSONSerialization.data()'. Keine Notwendigkeit, es zweimal zu tun. – brandonscript