通过 NSData 和数据的不同控制台输出数据(Xcode 8 beta 6,Swift 3)
Different console output data via NSData and Data (Xcode 8 beta 6, Swift 3)
我写了一小段常用代码,但发现我的代码不会 return 使用这行代码从服务器获取十六进制数据:
let currentData = try! Data(contentsOf: fullURL!)
print("currentData=", currentData)
并且输出:
currentData= 24419 bytes
我尝试使用 Leo 的评论 link:
计算器。com/q/39075043/2303865
我得到了一些没有空格的十六进制数据,验证器 (http://jsonprettyprint.com) 无法识别它并且 return 为空。
我们试着梳理一下这里的不同问题,总结一下
以上评论。
description
方法
Data
只打印一个简短的摘要 "NNN bytes",而不是十六进制转储
正如 NSData
所做的那样:
let o = ["foo": "bar"]
let jsonData = try! JSONSerialization.data(withJSONObject: o)
print(jsonData) // 13 bytes
您可以通过桥接到 NSData
():
来获取十六进制转储
print(jsonData as NSData) // <7b22666f 6f223a22 62617222 7d>
或为 Data
() 编写扩展方法。
但这实际上不是真正的问题。 JSON 验证器需要
JSON 作为 字符串, 而不是十六进制转储 ():
print(String(data: jsonData, encoding: .utf8)!) // {"foo":"bar"}
并且要将 JSON 数据反序列化为您需要的对象
none 以上,只需调用
let obj = try JSONSerialization.jsonObject(with: jsonData)
我写了一小段常用代码,但发现我的代码不会 return 使用这行代码从服务器获取十六进制数据:
let currentData = try! Data(contentsOf: fullURL!)
print("currentData=", currentData)
并且输出:
currentData= 24419 bytes
我尝试使用 Leo 的评论 link:
计算器。com/q/39075043/2303865
我得到了一些没有空格的十六进制数据,验证器 (http://jsonprettyprint.com) 无法识别它并且 return 为空。
我们试着梳理一下这里的不同问题,总结一下 以上评论。
description
方法
Data
只打印一个简短的摘要 "NNN bytes",而不是十六进制转储
正如 NSData
所做的那样:
let o = ["foo": "bar"]
let jsonData = try! JSONSerialization.data(withJSONObject: o)
print(jsonData) // 13 bytes
您可以通过桥接到 NSData
(
print(jsonData as NSData) // <7b22666f 6f223a22 62617222 7d>
或为 Data
(
但这实际上不是真正的问题。 JSON 验证器需要
JSON 作为 字符串, 而不是十六进制转储 (
print(String(data: jsonData, encoding: .utf8)!) // {"foo":"bar"}
并且要将 JSON 数据反序列化为您需要的对象 none 以上,只需调用
let obj = try JSONSerialization.jsonObject(with: jsonData)