我很难完成看似简单的事情。 我正在尝试构造一个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":[]}
我认为这是因为单引号要么是双引号,要么根本不引用,但我不知道如何改变它。
感谢任何输入!
答案 0 :(得分:3)
只是做:
itemsList.items.push(group);
,其中
var group = {"GroupN": [
{"ItemType":"Type", "ItemName":"Name"},
{"ItemType":"Type", "ItemName":"Name"},
{"ItemType":"Type", "ItemName":"Name"}
]};