2011-12-11 55 views
2

我試圖追加一個元素到我的JSON對象。 JSON的結構如下:將額外的屬性追加到JSON對象

[ 
     { 
      "newId": "167249-20", 
      "title": "El Supremo ordena reabrir la causa por los delitos fiscales de Carlos Fabra", 
      "created": "2011-12-01T13:22:00+01:00", 
      "priority": "99999", 
      "primaryCategoryId": "305", 
      "summary": "La sala de lo penal de este órgano ha dejado sin efecto el archivo por prescripción de cuatro de los cinco delitos fiscales que se le imputan al expresidente de la Diputación de Castellón.", 
      "image": "http%3A%2F%2Fwww.heraldo.es%2Fuploads%2Fimagenes%2Frec15%2F_reaperuradelcasofabra9558214_d07227b1.jpg", 
      "timestamp": "1322742120" 
     }, 
     { 
      "newId": "167233-20", 
      "title": "Victoria Rodríguez y Claire Morel se imponen en el Open de Andorra", 
      "created": "2011-12-01T13:11:00+01:00", 
      "priority": "5", 
      "primaryCategoryId": "307", 
      "summary": "Las patinadoras del Aramón Jaca y del CETDI, Victoria Rodríguez Long y Claire Morel se impusieron en sus respectivas categorías en el Open de Andorra de Patinaje sobre hielo disputado el pasado fin de semana en la pista de Canillo.", 
      "image": "", 
      "timestamp": "1322741460" 
     } 
] 

所以我想補充和額外的屬性(imageLocation)如下:

[ 
    { 
     "newId": "167249-20", 
     "title": "El Supremo ordena reabrir la causa por los delitos fiscales de Carlos Fabra", 
     "created": "2011-12-01T13:22:00+01:00", 
     "priority": "99999", 
     "primaryCategoryId": "305", 
     "summary": "La sala de lo penal de este órgano ha dejado sin efecto el archivo por prescripción de cuatro de los cinco delitos fiscales que se le imputan al expresidente de la Diputación de Castellón.", 
     "image": "http%3A%2F%2Fwww.heraldo.es%2Fuploads%2Fimagenes%2Frec15%2F_reaperuradelcasofabra9558214_d07227b1.jpg", 
     "timestamp": "1322742120", 
     "imageLocation:" "xxx/xxx/xxx/xxx/xxx/xxx/jpg" 
    }, 
    { 
     "newId": "167233-20", 
     "title": "Victoria Rodríguez y Claire Morel se imponen en el Open de Andorra", 
     "created": "2011-12-01T13:11:00+01:00", 
     "priority": "5", 
     "primaryCategoryId": "307", 
     "summary": "Las patinadoras del Aramón Jaca y del CETDI, Victoria Rodríguez Long y Claire Morel se impusieron en sus respectivas categorías en el Open de Andorra de Patinaje sobre hielo disputado el pasado fin de semana en la pista de Canillo.", 
     "image": "", 
     "timestamp": "1322741460", 
     "imageLocation:" "xxx/xxx/xxx/xxx/xxx/xxx/jpg" 
    } 
] 
+5

那你試試? – SLaks

回答

6

如果你解析你的JSON字符串命名jsonObj JavaScript對象,你可以很容易地遍歷集合,並添加新的屬性:

for (int i = 0; i<jsonObj.length;i++) 
{ 
    var singleItem = jsonObj[0]; 
    singleItem.imageLocation = "http://someUrl/" + singleItem.newId; // example 
} 

然後,如果您需要得到JSON字符串,使用JSON.stringify(jsonObj)

如果您還沒有解析你JSON字符串Javascript對象,你可以很容易地做到這一點:

var jsonObj = JSON.parse(jsonString); 
+0

感謝亞歷山大,那工作的一種享受。 – Stephen

4

您談到了一個「JSON對象,」但我的猜測是你沒有處理字符串(JSON),你實際上正在處理反序列化的對象(和數組)的JavaScript

如果是這樣,只是通過數組循環和分配新屬性的對象:

var index; 
for (index = 0; index < array.length; ++index) { 
    array[index].imageLocation = /* ...value here */; 
} 

...其中array是你在你的問題已經引用了數組的引用。