私はtest.json
というファイルを持っています。その内容を配列にロードし、編集してからjsonの文字列に戻す必要があるので、新しいファイルに配置する必要があります。私のjsonファイルを破壊する機能があります
問題は、ファイルを読み込んでオブジェクトに変換してから、配列に変換して最終的にjson文字列に変換しても、同じではないということです。それはいくつかの価値を失っている。 なぜですか?
var request = new XMLHttpRequest(); //load a file
request.open("GET", "levels/test.json", false);
request.send(null)
var mapTile = jQuery.parseJSON(request.responseText); //convert json to object
var array = $.map(mapTile, function(value, index) {
return value;
}); //convert object to array
// code to modify array [...]
var backToString = JSON.stringify(array); //convert array to json file
そしてここで、元のJSONファイルです:あなたはそれが読めなくなって、違い、出力文字列が"1"
と"2"
をリード欠けて表示されていない場合
{
"1": {
"1": { "type":"rock", "type2":"solid" },
"2": { "type":"rock", "type2":"solid" },
"3": { "type":"rock", "type2":"solid" },
"4": { "type":"rock", "type2":"solid" } },
"2": {
"1": { "type":"rock", "type2":"solid" },
"2": { "type":"rock", "type2":"solid" },
"3": { "type":"rock", "type2":"solid" },
"4": { "type":"rock", "type2":"solid" } }
}
。
私は最新の安定版のChromiumを使用しています。
編集:backToString
変数の周りに[
と]
を実現します。クリップをクリッピングした後も、問題は引き続き発生します。最初のキーが0であるので、あなたは、配列を持った後、あなたがオブジェクトを持って
元のオブジェクトは、{{"1":x、 "2":y} 'です。これを配列に変換します: '[x、y]'。次に、配列を変更します。その後、配列をオブジェクトに戻します。そうではありません。 –
オブジェクトを配列に変換します。もちろんそれは同じではないでしょう。 –
@ChrisG配列をjson文字列に戻します。配列には戻しません。私はそれをオブジェクトに戻すとは決して言わなかった。あなたの皮肉は必要ない。 'var backToString = JSON.stringify(array);' – Kajcioch