解析不起作用“for”当解析不起作用“for”
在什么地方会出现错误?
早些时候,该代码这样的JSON的工作,但是当我改变JSON “为” 停止工作
do{
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : Any]
if let main = json["LIBRARY"] as? [[String : Any]]{
for data in main {
var info = Modal()
info.name = data["NAME"] as? String
info.id = data["ID"] as? String
info.ImageViewURL = data["PICTURE"] as! String
print(info.id)
if let filesArray = data["FILES"] as? [[String : Any]] {
for file in filesArray {
var info = Modal()
info.name = file["NAME"] as? String
info.audioUrl = file["SRC"] as? String
print(info.name! as Any)
print(info.audioUrl! as Any, "\n")
self.modals.append(info)
}
}
print(info.name)
self.modals.append(info)
}
}
} catch let error {
print(error)
}
这是我目前的JSON
在第二JSON,'JSON [” LIBRARY“]'不是一个字典数组。这是一个字典。所以你不能这样做? [[String:Any]]'。它应该是'as? [字符串:任何]'。 – Larme
@Larme所以它输出一个错误info.name = data [“NAME”]为?字符串类型'(键:字符串,值:任何)'没有下标成员 – programmer
@programmer我指的是第一个问题。你误解了你的JSON格式。在发布的代码中,你的问题甚至没有通过for循环,我猜如果你在'json [“LIBRARY”]的'if let'之后添加'print()',它甚至不会被打印。所以,既然结构发生了变化,那也意味着其余的。你不能像数组一样解析字典。其余的由你决定。 – Larme