2016-07-25 9 views
0

Ich versuche, auf die Daten zuzugreifen und zu ändern, die ich von einem JSON-API-Anruf erhalte.Zugriff und Änderung 2d Json Array, Javascript

Das Format des Anrufs ist wie folgt:

{ 
    "count": 391, 
    "value": [ 
    { 
     "id": "id1", 
     "name": "name1", 
     "url": "url1", 
     "project": { 
     "id": "projId", 
     "name": "BT-GIT", 
     "url": "otherurl", 
     "state": "wellFormed" 
     }, 
     "defaultBranch": "master", 
     "remoteUrl": "remote" 
    }, 
    { 
     "id": "id2", 
     "name": "name2", 
     "url": "url2", 
     "project": { 
     "id": "projId", 
     "name": "BT-GIT", 
     "url": "otherurl", 
     "state": "wellFormed" 
     }, 
     "defaultBranch": "master", 
     "remoteUrl": "remote" 
    },... 

und ich möchte einen zusätzlichen Eintrag für jeden „Wert“ hinzuzufügen, so dass ich habe:

 { 
      "id": "id1", 
      "name": "name1", 
      "url": "url1", 
      "project": { 
      "id": "projId", 
      "name": "BT-GIT", 
      "url": "otherurl", 
      "state": "wellFormed" 
      }, 
      "defaultBranch": "master", 
      "remoteUrl": "remote" 
      "date": "date" <--------- 
     } 

Ich habe versucht, :

$.each(data, function (idx) { 
       data.value[idx].currentDate = new Date().toJSON().slice(0, 16); 
      }) 

und:

$.each(data, function (idx) { 
       data[1][idx].currentDate = new Date().toJSON().slice(0, 16); 
      }) 

irgendwelche Ideen, wie ich dieses Problem beheben könnte?

Vielen Dank.

+0

Es sieht aus wie Sie auf 'data' sind laufen, wenn es klingt wie Sie wollen auf 'data.value' iterieren. '$ .each (data.value, function ...' könnte den Trick machen. – neilsimp1

+0

Die Dokumentation erklärt, wie man ein übergeordnetes Objekt mit '$ .each' ziemlich klar iteriert: http://api.jquery.com/jquery.each/# jQuery-each-object-callback – user3297291

Antwort

0

Sie können mit Ihren vorhandenen Code zu tun, sondern brauchen nur etwas zwicken,

var data = { 
    "count": 391, 
    "value": [{ 
     "id": "id1", 
     "name": "name1", 
     "url": "url1", 
     "project": { 
      "id": "projId", 
      "name": "BT-GIT", 
      "url": "otherurl", 
      "state": "wellFormed" 
     }, 
     "defaultBranch": "master", 
     "remoteUrl": "remote" 
    }, { 
     "id": "id2", 
     "name": "name2", 
     "url": "url2", 
     "project": { 
      "id": "projId", 
      "name": "BT-GIT", 
      "url": "otherurl", 
      "state": "wellFormed" 
     }, 
     "defaultBranch": "master", 
     "remoteUrl": "remote" 
    }] 
}; 

$.each(data.value, function (index,data) { 
       data.currentDate = new Date().toJSON().slice(0, 16); 
      }); 
console.log(data); 

Siehe Demo: https://jsfiddle.net/mj3vu6s6/4/

0
data.value = data.value.map(function(v) { v.date = Date.now() }) 
+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map – slf