我想在 Swift 中完成这个 JSON。但我不能这样做....
{
"room": "Platinum",
"products": [{
"name": "Agua",
"quantity": 2
},
{
"name":"Cafe",
"quantity": 4
}],
"observation": "",
"date": "2016-08-15 12:00:00"
}
我的 swift 代码返回这个:
{
date = "2016-08-25 18:16:28 +0000";
observation = "";
products = (
{
name = cafe;
quantity = 1;
}
);
room = Platinium;
这是我的代码:
let para:NSMutableDictionary = NSMutableDictionary()
let prod: NSMutableDictionary = NSMutableDictionary()
para.setValue(String(receivedString), forKey: "room")
para.setValue(observationString, forKey: "observation")
para.setValue(stringDate, forKey: "date")
for product in products{
prod.setValue(product.name, forKey: "name")
prod.setValue(product.quantity, forKey: "quantity")
para.setObject([prod], forKey: "products")
}
这是我的输入:
{
name = coffe;
quantity = 2;
}
{
name = cappuccino;
quantity = 1;
}
这是输出
{
date = "2016-08-25 18:52:30 +0000";
observation = "";
products = (
{
name = cappuccino;
quantity = 1;
}
);
room = Platinium;
}
我创建了一个发送两个产品的请求,但代码只打印了最后一个产品。
最佳答案
创建一个新的 prodArray
数组,其中包含所有 prod
字典(名称和数量。)将此 prodArray 设置为 para
数组对应于 products
键。
代码中的问题:- 在 forin 循环中,您覆盖了与 "products"
键对应的值。
let para:NSMutableDictionary = NSMutableDictionary()
let prodArray:NSMutableArray = NSMutableArray()
para.setValue(String(receivedString), forKey: "room")
para.setValue(observationString, forKey: "observation")
para.setValue(stringDate, forKey: "date")
for product in products
{
let prod: NSMutableDictionary = NSMutableDictionary()
prod.setValue(product.name, forKey: "name")
prod.setValue(product.quantity, forKey: "quantity")
prodArray.addObject(prod)
}
para.setObject(prodArray, forKey: "products")
关于ios - 快速创建 JSON 数组和 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39152645/