Javascript 如何将数据推入JSON变量
我有一个JSON变量,如下所示:Javascript 如何将数据推入JSON变量,javascript,json,push,Javascript,Json,Push,我有一个JSON变量,如下所示: {"events": [ {"event_id": "1", "event_name": "Breakfast"}, {"event_id": "1", "event_name": "Calling Bob"} ]} 我需要使用javascript在每个事件中推送另一个属性,并使其如下所示: {"events": [ {"event_id": "1", "event_name": "Breakfast", "event_type": "calendar"},
{"events": [
{"event_id": "1", "event_name": "Breakfast"},
{"event_id": "1", "event_name": "Calling Bob"}
]}
我需要使用javascript在每个事件中推送另一个属性,并使其如下所示:
{"events": [
{"event_id": "1", "event_name": "Breakfast", "event_type": "calendar"},
{"event_id": "1", "event_name": "Calling Bob", "event_type": "calendar"}
]}
首先将其转换为
对象
:
var obj = JSON.parse(theJSON);
for(var i = 0; i < obj.events.length; ++ i)
obj.events[i].event_type = "calendar";
theJSON = JSON.stringify(obj);
var obj=JSON.parse(theJSON);
对于(变量i=0;i
如果您有
var obj = {"events": [....
那就用
for (var i = 0; i < obj.events.length; ++i)
obj.events[i].event_type = "calendar";
for(变量i=0;i
或优化:
for (var i = 0, len = obj.events.length; i < len; ++i)
obj.events[i].event_type = "calendar";
for(变量i=0,len=obj.events.length;i
wtf你在做什么?这与老年退休金问题无关。只需将条目推入数组。不需要字符串化/解析。他明确地说他需要处理JSON,而不是JS对象。@Christoph-这正是OPs的问题。。。他不想将另一个元素推入数组。。。把问题再读一遍。(+ 1,但考虑更改为循环的正常<代码>),因为数组中的迭代容易出错,因为可以无意中触摸对象的不相关字段(考虑<代码> var a=[“fo”];A.Myfield=3</Cord>:In将选择“0”和“Myfield”字段。。此代码缺少hasOwnProperty,并通过省略{}
,-1引入了易于出错的表示法。请参阅我对James McLaughlin的答案的评论,了解为什么不建议在数组上进行迭代。除了比通常的索引迭代慢一点之外。谢谢你的回答,我从中学到了一些新的东西。。如何使用循环的幻想:)
var yourJson = {"events": [
{"event_id": "1", "event_name": "Breakfast"},
{"event_id": "1", "event_name": "Calling Bob"}
]};
for(var eventKey in yourJson.events) {
yourJson.events[eventKey]['event_type'] = 'calendar';
}