打印JSONValue遵守Printable协议.所以很容易在原始字符串中得到JSON数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | let json = JSONValue(dataFromNetwork)
println(json)
/*You can get a well printed human readable raw JSON string:
{
"url" : {
"urls" : [
{
"expanded_url" : null,
"url" : "http://bit.ly/oauth-dancer" ,
"indices" : [
0 ,
26
],
"display_url" : null
}
]
}
*/
|
如果你不想打印出来,你可以使用.description属性来得到上述字符串。 1 | let printableString = json.description
|
调试与错误处理要是JSON数据出错或者我们错误地检索数据,那会怎么样呢?你可以使用if语句来测试: 1 2 3 4 | let json = JSONValue(dataFromNetworking)[ "some_key" ][ "some_wrong_key" ][ "wrong_name" ]
if json{
//JSONValue it self conforms to Protocol "LogicValue" , with JSONValue.JInvalid stands for false and others stands true
}
|
如果我们尝试使用错误的键值或索引来访问数据,description属性会高数你KeyPath在哪里出错了. 1 2 3 4 5 6 7 8 9 10 11 12 | let json = JSONValue(dataFromNetworking)[ "some_key" ][ "some_wrong_key" ][ "wrong_name" ]
if json{
} else {
println(json)
//> JSON Keypath Error: Incorrect Keypath "some_wrong_key/wrong_name"
//It always tells you where your key went wrong
switch json{
case .JInvalid(let error):
//An NSError containing detailed error information
}
}
|
后记 SwiftyJSON的开发将会发布在Github, 请持续关注后续版本。 |