Ios Swift从JSON获取值

Ios Swift从JSON获取值,ios,json,swift,swift3,Ios,Json,Swift,Swift3,我试图用下面的代码解析下面的JSON响应,但似乎无法让它正常工作,我该怎么做?我正在尝试获取图像中的“用户guid”和所有“实体guid” 迅捷的 JSON 替换以下代码并尝试检查。您必须尽可能使用Swift数据类型 do { var entity_guid : Int = 0 var user_guid : Int = 0 let jsonResult = try JSONSerialization.jsonObject(with: data, options: JSO

我试图用下面的代码解析下面的JSON响应,但似乎无法让它正常工作,我该怎么做?我正在尝试获取图像中的“用户guid”和所有“实体guid

迅捷的

JSON


替换以下代码并尝试检查。您必须尽可能使用
Swift
数据类型

do {
    var entity_guid : Int = 0
    var user_guid : Int = 0
    let jsonResult = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any]

     guard let jsonP = jsonResult["result"] as [String: Any] else {
     return
    }
     user_guid = jsonP["user_guid"] as! Int
     if let jsonArr = jsonP["images"] as? [String] {
        for image in jsonArr {
            entity_guid = image["entity_guid"] as! Int
         }
}
请尝试以下代码:

do {
        var entity_guid : Int = 0
        var user_guid : Int = 0
        let jsonResult = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String:Any]

        // Parse JSON data
        let jsonP = jsonResult?["result"] as! [String:Any]
        user_guid = jsonP["user_guid"] as! Int
        let images = jsonP["images"] as! [[String:Int]]
        for jsonL in images {
            entity_guid = jsonL["entity_guid"]!
        }
    } catch {
        print(error.localizedDescription)
    }

result
是一个对象(字典),而不是数组。1。为什么要使用
NSDictionary
?2.为什么所有的碰撞操作员(
)?3.当循环中只有一个且与
实体\u guid
值不在同一数组中时,为什么要尝试获取
用户\u guid
的值?。。。3.为什么
任何对象
?4.为什么
.mutableContainers
;-)为什么在Swift 3中使用
NSDictionary
?。。。为什么在Swift 3中使用
AnyObject
?它是
Any
@vadian,Any可以表示任何类型的实例,包括函数类型。任何对象都可以表示任何类类型的实例。Swift3中未弃用任何对象。我知道它肯定是类类型的对象,为什么我要使用“Any”并在以后将其转换为对象呢。因此,我使用了AnyObject而不是Any所有类型
JSON
支持都是Swift中的独占结构,因此
Any
,请参阅@vadian,感谢您的指导。我已经更新了代码。顺便说一下,您也可以修改代码。
jsonArr
的数据类型不正确。它需要是字典数组,而不是字符串数组。看看JSON。
do {
    var entity_guid : Int = 0
    var user_guid : Int = 0
    let jsonResult = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any]

     guard let jsonP = jsonResult["result"] as [String: Any] else {
     return
    }
     user_guid = jsonP["user_guid"] as! Int
     if let jsonArr = jsonP["images"] as? [String] {
        for image in jsonArr {
            entity_guid = image["entity_guid"] as! Int
         }
}
do {
        var entity_guid : Int = 0
        var user_guid : Int = 0
        let jsonResult = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String:Any]

        // Parse JSON data
        let jsonP = jsonResult?["result"] as! [String:Any]
        user_guid = jsonP["user_guid"] as! Int
        let images = jsonP["images"] as! [[String:Int]]
        for jsonL in images {
            entity_guid = jsonL["entity_guid"]!
        }
    } catch {
        print(error.localizedDescription)
    }