将Json数据附加到数组-Firebase/Swift
我正在尝试将Firebase中的数据附加到名为将Json数据附加到数组-Firebase/Swift,json,swift,firebase,firebase-realtime-database,Json,Swift,Firebase,Firebase Realtime Database,我正在尝试将Firebase中的数据附加到名为var itemNumbers:[[String:AnyObject]]的变量中。这是提取的样子: let orderItems = snapDict["itemNumbers"] as! [String:String] self.NSOBJECT.itemNumbers.append(orderItems as [String : AnyObject]) print(orderItems) 当我执
var itemNumbers:[[String:AnyObject]]的变量中属于NSO对象的代码>。这是提取的样子:
let orderItems = snapDict["itemNumbers"] as! [String:String]
self.NSOBJECT.itemNumbers.append(orderItems as [String : AnyObject])
print(orderItems)
当我执行此操作时,应用程序正好在我尝试将orderItems附加到数组的位置中断。这是我的错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
JSON:
在尝试附加orderItems之前,是否需要将其转换为其他内容
谢谢你的帮助 提及评论
如果您想追加订单
,那么使用[[String:AnyObject]]
另一方面,为[String:String]
追加项目编号
或
注意:避免有问题的隐式转换[[String:AnyObject]]代码>提及评论
如果您想追加订单
,那么使用[[String:AnyObject]]
另一方面,为[String:String]
追加项目编号
或
注意:避免有问题的隐式转换[[String:AnyObject]]代码>更正json,因为很多字段都不正确
使您的变量ItemNumber从
var itemNumbers:[[String:AnyObject]]代码>
到
asitemsNumbers
是可选的
并附加为
let order = jsonDictionary["order"] as! [String:AnyObject]
let tempItemNumbers = order["itemNumbers"] as! [String:AnyObject]
self.NSOBJECT.itemNumbers.append(tempItemNumbers)
print( self.NSOBJECT.itemNumbers)
更正json,因为很多字段都不正确
使您的变量ItemNumber从
var itemNumbers:[[String:AnyObject]]代码>
到
asitemsNumbers
是可选的
并附加为
let order = jsonDictionary["order"] as! [String:AnyObject]
let tempItemNumbers = order["itemNumbers"] as! [String:AnyObject]
self.NSOBJECT.itemNumbers.append(tempItemNumbers)
print( self.NSOBJECT.itemNumbers)
ItemNumber的钥匙在哪里?@cosmos你能试试我的答案吗试试这个。self.NSOBJECT.itemNumbers.append(orderItems为[String:String])可能会更改var itemNumbers:[[String:AnyObject]]代码>到var itemNumbers:[[String:String]]代码>???@cosmos您的json仍然无效ItemNumber键在哪里?@cosmos您可以尝试我的答案试试这个。self.NSOBJECT.itemNumbers.append(orderItems为[String:String])可能会更改var itemNumbers:[[String:AnyObject]]代码>到var itemNumbers:[[String:String]]代码>???@cosmos您的json仍然无效无法将nsdictionary的值转换为nsarray。另外,我通过数据库引用访问cart,所以我不需要使用它来访问TempItemNumber,现在的问题是我应该如何将它发送到firebase?让cartVal=[“item”:“1”][“item2”:“2”]像这样吗???我不确定在设置数据库引用的值时如何创建此值。从来没有这样做过,有什么线索吗?这将对我有很大帮助。@cosmos您可以将您的层次结构设置为{“order”:{“itemNumbers”:{{{“1”:“Item Description”}、{“2”:“Item Description”}}}}
。有关如何构造的参考,请参阅或无法将nsdictionary的值转换为nsarray。另外,我通过数据库引用访问cart,所以我不需要使用它来访问TempItemNumber,现在的问题是我应该如何将它发送到firebase?让cartVal=[“item”:“1”][“item2”:“2”]像这样吗???我不确定在设置数据库引用的值时如何创建此值。从来没有这样做过,有什么线索吗?这将对我有很大帮助。@cosmos您可以将您的层次结构设置为{“order”:{“itemNumbers”:{{{“1”:“Item Description”}、{“2”:“Item Description”}}}}
。有关如何构造的参考信息,请参阅或我添加了`self.NSOBJECT.itemNumbers.append(orderiments!as[String:AnyObject])`这就是输出:[[“项”:1]]我应该这样将数据发送到Firbase吗?让OrderItems=[“item”:“1”][“item2”:“2”]以便像您的示例一样接收它?我将此分配给关键的orderItems。(明天我将继续处理此问题)感谢您的帮助。我添加了'self.NSOBJECT.itemNumber.append(orderItems!as[String:AnyObject])`并将其作为输出:[[“item”:1]]我应该这样将数据发送到Firbase吗?让OrderItems=[“item”:“1”][“item2”:“2”]以便像您的示例一样接收它?我将此分配给关键订单项。(明天我将继续此工作)谢谢您的帮助。
guard let orderItems = snapDict["order"] as? [[String: AnyObject]] else{
return
}
self.NSOBJECT.itemNumbers.append(orderItems)
var itemNumbers: [[String:AnyObject]] = [] //if nil instantiate
let order = jsonDictionary["order"] as! [String:AnyObject]
let tempItemNumbers = order["itemNumbers"] as! [String:AnyObject]
self.NSOBJECT.itemNumbers.append(tempItemNumbers)
print( self.NSOBJECT.itemNumbers)