在javascript中将子键值对添加到现有数组(或JSON对象?)
我一直在绞尽脑汁,疯狂地搜索谷歌,但也许我没有用正确的关键词搜索 获得了一个列表/数组/JSON序列化数据(此时并不重要),如下所示: 我正在通过一个基于节点的socket.io接收一系列JSON对象,看起来像这样:在javascript中将子键值对添加到现有数组(或JSON对象?),javascript,arrays,json,key-value,keyvaluepair,Javascript,Arrays,Json,Key Value,Keyvaluepair,我一直在绞尽脑汁,疯狂地搜索谷歌,但也许我没有用正确的关键词搜索 获得了一个列表/数组/JSON序列化数据(此时并不重要),如下所示: 我正在通过一个基于节点的socket.io接收一系列JSON对象,看起来像这样: { "program": 1, "sequence_number": 1 } { "program": 3, "sequence_number": 2 } { "program": 3, "sequence_number": 1 } { "program": 2, "sequenc
{ "program": 1, "sequence_number": 1 }
{ "program": 3, "sequence_number": 2 }
{ "program": 3, "sequence_number": 1 }
{ "program": 2, "sequence_number": 2 }
{ "program": 2, "sequence_number": 1 }
{ "program": 2, "sequence_number": 3 }
我很难弄清楚的是,是否能够将这个传入的JSON(收到时一次一个)推/注入/合并到我上面的列表中,以创建以下内容:
{
"program": 1,
{
"sequence_number": 1
},
"program": 2,
{
"sequence_number": 2,
"sequence_number": 1,
"sequence_number": 3
},
"program": 3,
{
"sequence_number": 2,
"sequence_number": 1
}
}
这是一种类似于“舌尖上”的东西,但已经到了墙角。所以我呼吁社会上的一些智慧,赞成的解决方案,或指向正确的方向与任何已知的相关教程。提前谢谢
更新日期:2016年10月8日
为了解决关于我的列表格式不好的评论,如何重新构造数据,例如:
{
"program": 1,
"sequence_list":
[
{ "sequence_number": 1 },
{ "sequence_number": 2 }
]
},
{
"program": 2,
"sequence_list":
[
{ "sequence_number": 1 },
{ "sequence_number": 3 },
{ "sequence_number": 2 }
]
}
... etc.
这更有意义吗?至于解决方案,您可以更改基数:
{
"Program 1": [],
"Program 2": [],
"Program 3": []
}
然后可以将数据添加到数组中
对于解决方案,您可以更改基数:
{
"Program 1": [],
"Program 2": [],
"Program 3": []
}
然后可以将数据添加到数组中
试试这个-与您的要求类似,但使用有效的Javascript对象
var目标={
“方案1”:[],
“方案2”:[],
“方案3”:[]
};
变量源=[
{“程序”:1,“序列号”:1},
{“程序”:3,“序列号”:2},
{“程序”:3,“序列号”:1},
{“程序”:2,“序列号”:2},
{“程序”:2,“序列号”:1},
{“程序”:2,“序列号”:3}
];
对于(var i=0;i试试这个-类似于您所要求的,但是使用有效的Javascript对象
var目标={
“方案1”:[],
“方案2”:[],
“方案3”:[]
};
变量源=[
{“程序”:1,“序列号”:1},
{“程序”:3,“序列号”:2},
{“程序”:3,“序列号”:1},
{“程序”:2,“序列号”:2},
{“程序”:2,“序列号”:1},
{“程序”:2,“序列号”:3}
];
对于(var i=0;i{“key”:“value”,{}}不是有效的jsontrue!我正在尝试使用某种类型的子键值对,将传入的JSON数据与现有的程序值关联起来-这就是问题所在。{“Program”:1,“Program”:2,“Program”:3}
也无效-重复的键。能否将第一个集更改为{“Program”:[1,2,3]},因为它不是有效的json对象,所以在interpretation@A.T.我想我可以,只要我得到下面序列号匹配的“program”:3
或program:3
布局。{“key”:“value”,{}不是有效的jsontrue!我正在尝试使用某种类型的子键-值配对,将传入的JSON数据与现有的程序值关联起来-这就是问题。{“Program”:1,“Program”:2,“Program”:3}
也无效-重复键。能否将第一个集更改为{“Program”:[1,2,3]},因为它不是有效的json对象,所以在interpretation@A.T.我想我可以,只要我得到下面序列号匹配的“program:3
或program:3
布局。好小伙子-让它看起来很漂亮;)事实上,我也不知道第二个和第三个参数,谢谢!如此快速的回答!谢谢大家。是的,我意识到我的问题中没有正确地格式化数据,我很感激重新格式化来唤醒我的旧大脑。因为我随时都会有未知数量的程序(这是来自外部硬件控制器的数据)在动态构建第一个列表时,我必须将数字与名称连接起来,但这没什么大不了的。我将在周一回到办公室时尝试Robin的解决方案,然后更新投票/选择一个解决方案。感谢您的所有输入!-Jimm感谢两种解决方案,但我确实需要为bo保留键值数据目标和源数据。不知何故需要有“程序”:1
,等等。我正在尝试添加到类中:。请帮助Good lad-使其看起来漂亮;)事实上,我也不知道第二个和第三个参数,谢谢!如此快速的回答!谢谢大家。是的,我意识到我的问题中没有正确地格式化数据,我很感激重新格式化来唤醒我的旧大脑。因为我随时都会有未知数量的程序(这是来自外部硬件控制器的数据)在动态构建第一个列表时,我必须将数字与名称连接起来,但这没什么大不了的。我将在周一回到办公室时尝试Robin的解决方案,然后更新投票/选择一个解决方案。感谢您的所有输入!-Jimm感谢两种解决方案,但我确实需要为bo保留键值数据目标和源数据。不知何故需要有“程序”:1
,等等。我正在尝试添加到类:。请帮助