ios - 快速创建 JSON 数组和 JSON 对象

标签 ios json swift

我想在 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/

相关文章:

ios - SKView暂停自动恢复

ios - CAGradientLayer 在 4 个不同的角上有 4 种颜色

iphone - 另一个 UIViewController 中的 UIViewController 的新实例 : Why can't I set an instance variable?

java - 输入凭据,然后将 JSON 发布到 api java

ios - watch 套件的语音听写 (Apple Watch)

ios - Swift 可选参数函数

objective-c - Objective-C : Zooming UIScrollView Properly

ios - 在 Xcode 6.4 中使用 Swift2.0 pod

javascript - 自定义排序函数如何用于多维数组

javascript - 在 promise 链上使用 setTimeout