【问题标题】:How can I get the name value, multi-layered JSON value如何获取名称值、多层 JSON 值
【发布时间】:2014-08-20 07:15:04
【问题描述】:

如何获得名称的价值。谢谢你! 网络服务返回这个 json:

{
    "msg":"ok",
    "content":[{"id":"123","status":"10","date":"2014-08-20","name":"abc"}]
}

如何获取name值,多层JSON值。 我可以得到味精值,但名称值...什么方法

【问题讨论】:

    标签: json swift


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2019-05-11
      相关资源
      最近更新 更多