【问题标题】:How to access the first set of array? SwiftyJSON如何访问第一组数组? SwiftyJSON
【发布时间】:2018-07-27 03:35:43
【问题描述】:

我在使用 SwiftyJSON 时遇到了问题,我不太了解他们的文档。

我做到了

let jsonArray = JSON(jsonData)

let json = jsonArray["Data"]   

(编辑)如何使用循环获取所有“名称”(只是名称而不是名称中的内容)?就像我想把每一组都打印出来一样。

{ "Data": { "Jenn": { "Id": "21227", "DOB": "1/1/1989" }, 
            "Kenny": { "Id": "20909", "DOB": "1/10/1989" }, 
            "Lisa": { "Id": "28223", "DOB": "11/1/1980" }, 
            "John": { "Id": "29462", "DOB": "2/7/1991" }, 
            "Emma": { "Id": "3744", "DOB": "10/7/2000" }, 
            "David": { "Id": "3748", "DOB": "4/9/1980" }, 
            "Tim": { "Id": "1182", "DOB": "5/5/1999" }, 
            "Joan": { "Id": "7605", "DOB": "6/12/1995" }, 
            "Jack": { "Id": "3808", "DOB": "3/20/1990" } 
           } 
 }

如果看起来令人困惑,我很抱歉。谢谢!!

【问题讨论】:

  • 因为我得到你的 json 格式不正确。在解析 json 数据之前,请在 jsonviewer.stack.hu 上验证 json 格式,如果您能够通过 jsonviewer 成功格式化 jsondata,那么它可以很容易地解析。
  • 您好,感谢您的指出。刚刚添加了缺少的括号。

标签: swift swifty-json


【解决方案1】:

首先根对象是字典,不是数组,请注意大括号({})。

名称是字典中键 Data 的字典键

do {
    let jsonDictionary = try JSON(data: data)
    if let data = jsonDictionary["Data"].dictionary {
        let names = data.keys
        for name in names {
            print(name)
        }
    }
} catch {
    print(error)
}

【讨论】:

    【解决方案2】:

    json 不是数组而是字典。 所以你应该使用json["Emma"]

    【讨论】:

    • 您好,感谢您的回答。我认为我问的方式是不正确的。在我完成 json = jsonArray["Data"] 之后,它只会打印整个内容。到目前为止,我只能通过 json["Data"].first 获得第一个字典。如何获得 json 中的第二个字典?如果 json 包含 100+ 的字典数组怎么办?我如何使用循环来获得所有这些?
    【解决方案3】:

    json是Dic,你可以这样使用:

    //using key to get sub data
    let dic = json["Emma"]
    //get keys array
    let names = json.keys;
    if let firstname = names.first{
        print(firstname)
    }
    

    【讨论】:

    • 您好,感谢您的回答。我认为我问的方式是不正确的。在我完成 json = jsonArray["Data"] 之后,它只会打印整个内容。到目前为止,我只能通过 json["Data"].first 获得第一个字典。如何获得 json 中的第二个字典?如果 json 包含 100+ 的字典数组怎么办?我如何通过使用循环来获得所有这些?很抱歉,这听起来真的很令人困惑,我正在尽力解释我在问什么:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2019-06-13
    • 1970-01-01
    • 2011-04-20
    • 2015-11-09
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多