2016-04-15 6 views
0

非常に長いデータリストを持つJSONがあり、ハードコードID(静的)を追加する必要があります。私はプロセスを実行するときに自動的に、たとえばgulpのようなツールでこれをどうすればできるのだろうかと思っていますか?私は、タスクにファイルを与え、その内容を変更して(以下に示すように)、更新されたデータでそのファイルを永久に保存したいと思います。JSONデータの自動変更とビルド時の保存

これは、データは、例えば、次のようになります。 -

[ 
    { 
    "title": "Lorem ipsum", 
    "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit" 
    }, 
    { 
    "title": "Maecenas ac elit", 
    "text": "Maecenas ac elit vitae lorem interdum tincidunt" 
    } 
] 

そして、ここでは、私がお返しに探しているものです: -

[ 
    { 
    "id" : "1", 
    "title": "Lorem ipsum", 
    "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit" 
    }, 
    { 
    "id" : "2", 
    "title": "Maecenas ac elit", 
    "text": "Maecenas ac elit vitae lorem interdum tincidunt" 
    } 
] 
+0

あなたはこのJSONをどのようなコンテキストを使用していますか?あなたがガルプを使用している場合、どこかに永久保存する必要がありますか? – Shakespeare

+0

@OwenAyres、はい私は永久にこれらのデータを保存しています。これは同じデータを再び取得し、静的にIDを再度追加する必要があります:( – Syed

答えて

1

Array#forEach()で、インデックスはidプロパティのために増分されます。

var array = [{ "title": "Lorem ipsum", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit" }, { "title": "Maecenas ac elit", "text": "Maecenas ac elit vitae lorem interdum tincidunt" }]; 
 

 
array.forEach(function (a, i) { 
 
    a.id = (i + 1).toString(); 
 
}); 
 

 
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');

+0

ありがとうございました。 "2")、 "title"の上に移動しましたか? – Syed

+1

文字列は問題ありません。オブジェクトには(es6まで)順序はありません。 ordeを変更したい場合は、すべてのn個のオブジェクトを必要な順序で再構築する必要があります。私はそれをお勧めしません。 –

+1

ありがとう。とても役に立ちました。 – Syed

0

あなたのJSONは、IDのことで割り当てられたオブジェクト場合そして、ループを倍増例えばインデックス+ 1

を使用する必要が順番を並べ替えていない:http://json.live/173fqW

var arr = [{},{},{},{}]; 

for(var i = 0; i < arr.length; i++) 
{ 
    var obj = arr[i]; 
    var id = i+1; //<<-- this is the ID (array stars from 0 we added +1 to start from 1 
} 
関連する問題