将数据添加到JSON对象

时间:2015-08-13 13:34:28

标签: javascript json

我很难完成看似简单的事情。 我正在尝试构造一个JSON对象来存储一些数据。它开始为空,我通过一个文件解析添加某些元素。这是我希望我的JSON对象看起来的样子:

{"Items:":[
    {"Group1":[
        {"ItemType":"Type", "ItemName":"Name"},
        {"ItemType":"Type", "ItemName":"Name"},
        {"ItemType":"Type", "ItemName":"Name"}
    ]},
    {"Group2":[
        {"ItemType":"Type", "ItemName":"Name"},
        {"ItemType":"Type", "ItemName":"Name"},
        {"ItemType":"Type", "ItemName":"Name"}
    ]}
]}

或者我考虑过这样做:

var itemsList = {
    "items":[
        {"groupName": "Group1", "Items": [list of items]},
        {"groupName": "Group2", "Items": [list of items]}
    ]
};

组的名称不会是group1,group2等。

以下是我尝试向其添加数据的方式。

itemsList.items.push(groupName); //Where groupName is a string

itemsList.items.groupName= "Name";

甚至:

itemsList.items[groupName] = listOfItems;

令人惊讶地工作比我预期的要好。 但是,无论我采用哪种方式,当我尝试使用JSON对象时,它永远不会起作用。当我输出到控制台时,它显示为:

{ items:
   ['Group1': ['item1','item2','item3'],
    'Group2' : ['item1', 'item2', 'item3']]}

哪个看起来是正确的,但是当我对我得到的对象执行JSON.parse()时:

{"Items":[]}

我认为这是因为单引号要么是双引号,要么根本不引用,但我不知道如何改变它。

感谢任何输入!

1 个答案:

答案 0 :(得分:3)

只是做:

itemsList.items.push(group);

,其中

var group = {"GroupN": [
    {"ItemType":"Type", "ItemName":"Name"},
    {"ItemType":"Type", "ItemName":"Name"},
    {"ItemType":"Type", "ItemName":"Name"}
]};