【发布时间】:2014-08-20 07:15:04
【问题描述】:
如何获得名称的价值。谢谢你! 网络服务返回这个 json:
{
"msg":"ok",
"content":[{"id":"123","status":"10","date":"2014-08-20","name":"abc"}]
}
如何获取name值,多层JSON值。 我可以得到味精值,但名称值...什么方法
【问题讨论】:
如何获得名称的价值。谢谢你! 网络服务返回这个 json:
{
"msg":"ok",
"content":[{"id":"123","status":"10","date":"2014-08-20","name":"abc"}]
}
如何获取name值,多层JSON值。 我可以得到味精值,但名称值...什么方法
【问题讨论】:
JSON 很难看。这样您就可以获得"name"。
import Foundation
let jsonTestString = "{\"msg\":\"ok\",\"content\":[{\"id\":\"123\",\"status\":\"10\",\"date\":\"2014-08-20\",\"name\":\"abc\"}]}"
let jsonTestData = jsonTestString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
if let data = jsonTestData {
let jsonDictionary = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as [String : AnyObject]
let content = jsonDictionary["content"] as AnyObject? as? [[String : String]]
let name = content?.first?["name"]
println(name ?? "There is no name.") // prints abc.
}
注意这一行:
let content = jsonDictionary["content"] as AnyObject? as? [[String : String]]
我们应该能够像这样有条件地直接向下转换为[[String : String]]:
let content = jsonDictionary["content"] as? [[String : String]]
这是known bug。
【讨论】: