将属性添加到从远程数据获取的JSON对象

时间:2014-10-06 17:48:06

标签: javascript arrays json api

我有一个像我这样获得的JSON对象数组

var arr = [];

$.getJSON( 'http://localhost:port/api/blah/blah', function( jsonPayload ) {

      console.log('Getting JSON...');

      // Do stuff with JSON data here, or call a function here and
      // pass the data to it as an argument

      arr = jsonPayload;
      console.log('arr IS SET!');
      functionCall();
      //printArr(arr);
});

我的数组arr有一堆看起来像这样的JSON对象

{
  "id": 123,
  "name": "Joe Schmo",
  "blah": "blah",
  .
  .
  .
}

Anddd我尝试将新属性添加到每个这些对象中,如此

for (var i = 0; i < arr.lenth ; i++)
{
    var curr = arr[i];
    curr.newProp= 0;
}//end for loop adding newProp property

然而,当我用JSON对象查看已完成的数组时,我发现我的newProp 没有添加到JSON对象。

为什么这样,你可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

而不是

for (var i = 0; i < arr.lenth ; i++)

使用

for (var i = 0; i < arr.length ; i++)
只要某些东西不起作用并且它应该起作用,错字就是可能的原因。

答案 1 :(得分:0)

var test = [{a:1},{b:2}];
test.forEach(function(obj) { obj["newProp"] = 0;});