2017-07-21 38 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"; 
} 

希望它可以幫助你!