iOS SwiftyJson将JSON数组编码为JSON

时间:2016-01-03 10:54:15

标签: ios json

我正在尝试使用iOS中的SwiftyJSON编码(从对象到JSON字符串)以下JSON:

{
    "item_list":[
        {
            "item_id":"id1", 
            "item_name":"name1"
        },
        {
            "item_id":"id2", 
            "item_name":"name2"
        }
    ]
}

我通过自己的类创建每个项目的JSON对象。这是我用来为项目生成JSON对象的代码:

public func getItemJson() -> JSON {
    var json:JSON = ["item_id":id, "item_name":name]
    return json
}

这是我用来尝试生成整体JSON的代码:

func getItemListJson() -> JSON {
    var list:[JSON] = []
    for item in itemList {
        list.append(item.getItemJson())
    }
    var json:JSON = ["item_list":list]      // This line contains error.
    return json 
}

但是,我收到编译错误,说" Type [JSON]不符合协议' AnyObject'"。我做错了什么?

1 个答案:

答案 0 :(得分:0)

原因是JSON是一个结构而不是一个对象。在项目的JSON上使用.object方法可以解决错误。

func getItemListJson() -> JSON {
    var list:[AnyObject] = []
    for item in itemList {
        list.append(item.getItemJson().object)
    }
    return JSON(["item_list":list]) 
}