我有一個名爲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": {
"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" } }
}
如果你沒有看到其中的差別,輸出字符串丟失領先"1"
和"2"
,使其成爲不可讀。
我正在使用最新的穩定版本的Chromium。
編輯:我知道[
和]
圍繞backToString
變量。剪切後,問題仍然存在。
原始對象是:'{「1」:x,「2」:y}'。你把它變成一個數組:'[x,y]'。然後你改變數組。然後你將陣列變回obj-哎呀,不,你不知道。 –
your'e將對象轉換爲數組。當然這不會是一樣的。 –
@ChrisG我將數組轉換回json字符串,而不是數組。我從來沒有說過我把它變成一個物體,你的諷刺是不需要的。 'var backToString = JSON.stringify(array);' – Kajcioch