2016-07-25 9 views
0

JSON API呼び出しから受け取ったデータにアクセスして変更しようとしています。アクセスと変更2d Json Array、Javascript

呼び出しの形式は次のようである:

{ 
    "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" 
    },... 

と私は私が持っているように、それぞれの「価値」への余分なエントリを追加したい:

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

私が試しました:

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

と:

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

どのように私はこの問題を改善することができますか?

大変ありがとうございます。

+0

o 'data.value'を繰り返し実行します。 '$ .each(data.value、function ...')はトリックを行うかもしれません。 – neilsimp1

+0

ドキュメントは、 '$ .each'を使ってオブジェクトを過度に反復処理する方法について、非常に明確に説明しています:http://api.jquery.com/jquery.each /#jQuery-each-object-callback – user3297291

答えて

0

あなたの既存のコードで行うことができますが、わずかに微調整する必要は、

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); 

参照デモ:それはのように聞こえるときに、data` `に反復しているように見えます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