将Json数据附加到数组--Firebase/Swift
问题描述:
我试图将Firebase中的数据附加到名为var itemNumbers: [[String: AnyObject]]!
的属于NSObject的变量。这是如何获取的样子:当我做这个应用程式的空档正是我尝试添加的OrderItems到数组将Json数据附加到数组--Firebase/Swift
let orderItems = snapDict["itemNumbers"] as! [String:String]
self.NSOBJECT.itemNumbers.append(orderItems as [String : AnyObject])
print(orderItems)
。这是我的错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
JSON:
{ "order": {
"itemNumbers" : {
"1": "Item Description",
"2": "Item Description"
}
}
}
我需要的OrderItems转换成别的东西之前,我尝试添加呢?
感谢您的帮助!
答
纠正你的json,因为很多字段都是不正确的。
让你变itemNumbers从
var itemNumbers: [[String:AnyObject]]!
到
var itemNumbers: [[String:AnyObject]] = [] //if nil instantiate
为itemsNumbers
是可选的。
和追加为
let order = jsonDictionary["order"] as! [String:AnyObject]
let tempItemNumbers = order["itemNumbers"] as! [String:AnyObject]
self.NSOBJECT.itemNumbers.append(tempItemNumbers)
print(self.NSOBJECT.itemNumbers)
答
提意见
好,如果你要追加order
然后使用[[String: AnyObject]]
,另一方面追加itemNumbers
为[String:String]
guard let itemNumbers= snapDict["itemNumbers"] as? [String:String] else{
return
}
self.NSOBJECT.itemNumbers.append(itemNumbers)
或
guard let orderItems = snapDict["order"] as? [[String: AnyObject]] else{
return
}
self.NSOBJECT.itemNumbers.append(orderItems)
注意:避免有问题的隐式转换[[String: AnyObject]]!
哪里是itemNumbers关键? –
@cosmos你可以试着用我的回答 –
试试这个。 self.NSOBJECT.itemNumbers.append(orderItems as [String:String]) –