我正在使用RESTful API向遠程服務器發出請求。我創建了一個字典,然後使用JSONSerialization將其序列化爲Data。問題是,當序列化日期時間dd/mm/yyyy它會自動添加一個\字符。此問題可能是由於從字典轉換爲數據或數據轉換爲字符串。我不完全清楚。Swift 3 JSONSerialization序列化字典包含字符
如何刪除此字符\
下面是我的應用程序代碼:
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)
}
但是服務器端收到以下JSON:
{
"RequestAt":"08\/04\/2017 11:42:03",
....
}
感謝您的支持。
您關心的反斜線或不在服務器接受的格式?根據JSON規格斜槓可以逃脫 – vadian
服務器端的開發者反饋我這個問題。這個系統已經有一個應用程序在Android上運行,所以我必須糾正這一步。 – Robust
轉義正斜槓是完全有效的,所以它應該在服務器端進行糾正。 – vadian