Ios Swift从JSON获取值
我试图用下面的代码解析下面的JSON响应,但似乎无法让它正常工作,我该怎么做?我正在尝试获取图像中的“用户guid”和所有“实体guid” 迅捷的 JSONIos 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
替换以下代码并尝试检查。您必须尽可能使用
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)
}