在javascript中将子键值对添加到现有数组(或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

我一直在绞尽脑汁,疯狂地搜索谷歌,但也许我没有用正确的关键词搜索

获得了一个列表/数组/JSON序列化数据(此时并不重要),如下所示:

我正在通过一个基于节点的socket.io接收一系列JSON对象,看起来像这样:

{ "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
,等等。我正在尝试添加到类:。请帮助