循环 AnyHashable 字典
Looping an AnyHashable Dictionary
我正在尝试循环从 Http 响应中获得的信息,但访问数据时遇到问题。
这是目前我正在尝试循环的信息:
我试图使用 For 来访问响应的不同元素,但无法弄清楚如何访问字典中的元素,这是我正在使用的代码:
var dictionaryMessage: NSMutableDictionary?
do {
if let data = result?.data(using: .utf8) {
dictionaryMessage = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? NSMutableDictionary
if(dictionaryMessage?["precios"] != nil){
var element = dictionaryMessage?["precios"]
for (index, element) in element![0]{
print("index" + index + "element:" + element)
}
}
}
} catch {
//error handling
}
我希望找到访问此数据的正确方法,因为目前我收到此错误:
你可以试试
var element = dictionaryMessage!["precios"] as! [[String:Any]]
代码中存在一些问题。 Swift 是一种强类型语言,使用 NS...
集合类型你会得到未指定的 Any(Object)
并且你必须有条件地向下转换所有类型。
键 precios
的值是一个 数组 ,具有 String
个键和 Int
个值,因此封闭字典 dictionaryMessage
是 [String:[[String:Int]]]
var dictionaryMessage : [String:[[String:Int]]]?
do {
if let data = result?.data(using: .utf8) {
dictionaryMessage = try JSONSerialization.jsonObject(with: data) as? [String:[[String:Int]]]
if let precios = dictionaryMessage?["precios"] {
for item in precios {
for (index, element) in item {
print("index: \(index) element: \(element)")
}
}
}
}
} catch {
print(error)
}
或者如果数组中只有一个元素
do {
if let data = result?.data(using: .utf8) {
dictionaryMessage = try JSONSerialization.jsonObject(with: data) as? [String:[[String:Int]]]
if let precios = dictionaryMessage?["precios"]?.first {
for (index, element) in precios {
print("index: \(index) element: \(element)")
}
}
}
} catch {
print(error)
}
我正在尝试循环从 Http 响应中获得的信息,但访问数据时遇到问题。
这是目前我正在尝试循环的信息:
我试图使用 For 来访问响应的不同元素,但无法弄清楚如何访问字典中的元素,这是我正在使用的代码:
var dictionaryMessage: NSMutableDictionary?
do {
if let data = result?.data(using: .utf8) {
dictionaryMessage = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? NSMutableDictionary
if(dictionaryMessage?["precios"] != nil){
var element = dictionaryMessage?["precios"]
for (index, element) in element![0]{
print("index" + index + "element:" + element)
}
}
}
} catch {
//error handling
}
我希望找到访问此数据的正确方法,因为目前我收到此错误:
你可以试试
var element = dictionaryMessage!["precios"] as! [[String:Any]]
代码中存在一些问题。 Swift 是一种强类型语言,使用 NS...
集合类型你会得到未指定的 Any(Object)
并且你必须有条件地向下转换所有类型。
键 precios
的值是一个 数组 ,具有 String
个键和 Int
个值,因此封闭字典 dictionaryMessage
是 [String:[[String:Int]]]
var dictionaryMessage : [String:[[String:Int]]]?
do {
if let data = result?.data(using: .utf8) {
dictionaryMessage = try JSONSerialization.jsonObject(with: data) as? [String:[[String:Int]]]
if let precios = dictionaryMessage?["precios"] {
for item in precios {
for (index, element) in item {
print("index: \(index) element: \(element)")
}
}
}
}
} catch {
print(error)
}
或者如果数组中只有一个元素
do {
if let data = result?.data(using: .utf8) {
dictionaryMessage = try JSONSerialization.jsonObject(with: data) as? [String:[[String:Int]]]
if let precios = dictionaryMessage?["precios"]?.first {
for (index, element) in precios {
print("index: \(index) element: \(element)")
}
}
}
} catch {
print(error)
}