Nei*_*ham 11 json ios nsjsonserialization swift
我有一些类似的代码(我在这里简化了):
let text = "abc" let iosVersion = UIDevice.currentDevice().systemVersion
let message = ["Text" : text, "IosVersion" : iosVersion]
if NSJSONSerialization.isValidJSONObject(message){
let url = NSURL(string: "http://localhost:3000/api/someapi")
var request = NSMutableURLRequest(URL: url!)
var data = NSJSONSerialization.dataWithJSONObject(message, options: nil, error: nil)
println(data)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = "POST"
request.HTTPBody = data
let task = session.dataTaskWithRequest(request, completionHandler: nil)
task.resume()
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我希望以可读格式看到JSON,以便我可以将其复制/粘贴到fiddler/curl中,以帮助在服务器端诊断我的API.println(data)上面的行给出了十六进制数据.有任何想法吗?
vad*_*ian 24
从NSData创建一个NSString
do {
let data = try JSONSerialization.data(withJSONObject: message)
let dataString = String(data: data, encoding: .utf8)!
print(dataString)
// do other stuff on success
} catch {
print("JSON serialization failed: ", error)
}
Run Code Online (Sandbox Code Playgroud)
我还建议检查JSON序列化的成功与否
do {
let data = try JSONSerialization.data(withJSONObject: message)
let dataString = String(data: data, encoding: .utf8)!
print(dataString)
// do other stuff on success
} catch {
print("JSON serialization failed: ", error)
}
Run Code Online (Sandbox Code Playgroud)
编辑:
在Swift 2中,错误处理已经改变
do {
let data = try JSONSerialization.data(withJSONObject: message)
let dataString = String(data: data, encoding: .utf8)!
print(dataString)
// do other stuff on success
} catch {
print("JSON serialization failed: ", error)
}
Run Code Online (Sandbox Code Playgroud)
Swift 3的更新
do {
let data = try JSONSerialization.data(withJSONObject: message)
let dataString = String(data: data, encoding: .utf8)!
print(dataString)
// do other stuff on success
} catch {
print("JSON serialization failed: ", error)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14758 次 |
| 最近记录: |