Ich bin eine Anfrage an Remote-Server mit RESTful API. Ich erstelle ein Wörterbuch, dann verwende ich JSONSerialization, um es zu Daten zu serialisieren. Das Problem ist, wenn die Datumszeit dd/mm/yyyy serialisiert wird, fügt sie automatisch ein \ -Zeichen hinzu. Dieses Problem kann aufgrund der Konvertierung von Dictionary in Daten oder Daten in String auftreten. Ich weiß es nicht genau.Swift 3 JSONSerialization serialisieren Wörterbuch enthält Zeichen
Wie dieses Zeichen \
Im Folgenden finden Sie auf App meinen Code entfernen:
var dic = [String : String]()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss"
let current : String = dateFormatter.string(from: now)
dic["RequestAt"] = current
// others set key-value
do {
var request = URLRequest(url: URL(string: DOMAIN_NAME)!)
request.httpMethod = "POST"
request.timeoutInterval = 3
request.addValue("application/json charset=utf-8", forHTTPHeaderField: "Content-Type")
request.addValue("application/json charset=utf-8", forHTTPHeaderField: "Accept")
let d = try JSONSerialization.data(withJSONObject: dic, options: [])
let str = String.init(data: d, encoding: .utf8)
print(str ?? "NOTHING") // Same result as server's receive
request.httpBody = d
let session = URLSession.shared
session.dataTask(with: request) { data, response, err in
//handle callback
}.resume()
} catch let error {
print(error.localizedDescription)
}
Aber serverseitige erhalten unter json:
{
"RequestAt":"08\/04\/2017 11:42:03",
....
}
Ihnen für Ihre Unterstützung danken .
Sind Sie besorgt über die Schrägstriche oder nicht der Server das Format akzeptieren? Laut JSON Specs Schrägstriche können – vadian
der Entwickler von Server-Side Feedback mir dieses Problem entkommen. Dieses System hat bereits eine App auf Android, daher muss ich diesen Schritt korrigieren. – Robust
Escaping vorwärts Schrägstriche ist perfekt gültig, so sollte es auf der Serverseite korrigiert werden. – vadian