在swift中访问JSON数据

时间:2014-11-24 23:40:05

标签: json xcode swift

我试图在我的swift代码中访问JSON数据,但我无法正确返回它。这是我的JSON代码:

    [
    {
        "id": "1",
        "isImage": "0",
        "name": "test name",
        "post": "test post",
        "time": "10:27",
        "ip": "192.168.1.1",
        "city ": "Columbus",
        "latlong": "39.896418,-82.9751105",
        "clientID": "clientID",
        "popularity": "300"
    },
    {
        "id": "2",
        "isImage": "0",
        "name": "test name two",
        "post": "test post two",
        "time": "13:37",
        "ip": "192.168.1.1",
        "city ": "Columbus",
        "latlong": "39.896418,-82.9751105",
        "clientID": "clientID",
        "popularity": "69"
    }
    ]

我想知道如何通过密钥json[0].['id']或?来访问数据? 我目前正在使用此json.swift module并尝试使用

访问数据
func jsonHandle(data: NSString) {
            var parsedJSON = JSON(data)
            var id = parsedJSON[0].["id"]
            NSLog("\(id)")
    }

但它什么也没有返回。任何想法?

1 个答案:

答案 0 :(得分:2)

您可以致电JSON(string:...)再现,并消除[0]["id"]之间的时间段:

func jsonHandle(data: NSString) {
    let parsedJSON = JSON(string: data)
    var id = parsedJSON[0]["id"]
    NSLog("\(id)")
}

或者,如果您有NSData,则可以使用JSON(data: ...)再现:

func jsonHandle(data: NSData) {
    let parsedJSON = JSON(data: data)
    let id = parsedJSON[0]["id"]
    NSLog("\(id)")
}

或者,如果您想使用原生NSJSONSerialization而不是第三方库,您可以:

func jsonHandle(data: NSData) {
    var error: NSError?
    let parsedJSON = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error) as NSArray
    let id = parsedJSON[0]["id"]
    NSLog("\(id)")
}

就个人而言,我倾向于采用标准的NSJSONSerialization方法,因为它是一种经过验证的方法,但那是你的号召。