2017-07-21 42 views
0

我有我的Node.js代码中JSON数组与下面的模式:将数据添加到JSON阵列

{ 
    "status": "ok", 
    "data": [ 
     { 
      "id": 1, 
      "active": true, 
      "createdAt": "2017-07-21T15:39:31.000Z", 
      "updatedAt": "2017-07-21T15:47:13.000Z" 
     } 
    ] 
} 

,我想补充数据,因此它看起来就像:

{ 
    "status": "ok", 
    "data": [ 
     { 
      "id": 1, 
      "active": true, 
      "createdAt": "2017-07-21T15:39:31.000Z", 
      "updatedAt": "2017-07-21T15:47:13.000Z", 
      "information": "someInformation" 
     } 
    ] 
} 

你能帮我怎么做?

谢谢!

回答

3

是否这样?访问obj变量的数据属性以及该数组中的第一个元素,然后在该对象上设置一个等于您的字符串的新属性。

var obj = { 
 
    "status": "ok", 
 
    "data": [ 
 
     { 
 
      "id": 1, 
 
      "active": true, 
 
      "createdAt": "2017-07-21T15:39:31.000Z", 
 
      "updatedAt": "2017-07-21T15:47:13.000Z" 
 
     } 
 
    ] 
 
}; 
 
    
 
obj.data[0].information = "someInformation"; 
 
    
 
console.log(obj);

+0

最初的问题要求修改JSON(这是一个字符串)。这个答案修改了一个对象。 –

+0

@MartinJoiner好吧,如果需要的话,OP可以通过JSON.stringify(obj)将对象返回给JSON;' – sauntimo

1

既然你已经是JSON,你应该首先分析它,因为JSON是一个字符串。解析后你会得到应该保存在某个变量中的对象,然后你可以作为一般对象来访问它并添加你想要的属性。然后你必须再次将它转换成JSON字符串。这将是这样

var parsed = JSON.parse(data); // Now we are transforming JSON string into the object 
 

 
//Now you may do whatever you want 
 
parsed.newprop = 'some text'; 
 
parsed.hello = 'Hellow world'; 
 

 
data = JSON.stringify(parsed); // Now we are replacing the previous version of JSON string to new version with additional properties

+0

这更好地回答了这个问题,因为它特别要求修改JSON,但接受的答案修改了一个JavaScript对象。 –

0
var dataContainer = { 
    "status": "ok", 
    "data": [ 
     { 
     "id": 1, 
     "active": true, 
     "createdAt": "2017-07-21T15:39:31.000Z", 
     "updatedAt": "2017-07-21T15:47:13.000Z" 
     } 
    ] 
}; 


for(var i = 0; i < dataContainer.data.length; i++) { 
    dataContainer['data'][i]['information'] = "some information"; 
} 

希望它可以帮助你!