我现在正在使用HTMLV功能,我想将有关DOM元素的信息存储到JSON文件中。
因此,我创建了一个这样的JSON文件:
var pages=
[
{
"img_data_url": "test",
"stamp":
[
{"src": "../pic/cake.png",
"pos_x": 1,
"pos_y": 1,
"id_name": "stamp00"
},
{"src": "../pic/egg.png",
"pos_x": "2",
"pos_y": "2",
"id_name": "stamp01"
},
{"src": "../pic/sugar.png",
"pos_x": "3",
"pos_y": "3",
"id_name": "stamp02"
},
{"src": "../pic/potato.png",
"pos_x": "4",
"pos_y": "4",
"id_name": "stamp03"
},
{"src": "../pic/banana.png",
"pos_x": "5",
"pos_y": "5",
"id_name": "stamp04"
}
]
}
,
{
"img_data_url": "test",
"stamp":
[
{"src": "../pic/f.png",
"pos_x": "1",
"pos_y": "1",
"id_name": "stamp10"
},
{"src": "../pic/g.png",
"pos_x": "2",
"pos_y": "2",
"id_name": "stamp11"
},
{"src": "../pic/h.png",
"pos_x": "3",
"pos_y": "3",
"id_name": "stamp12"
},
{"src": "../pic/i.png",
"pos_x": "4",
"pos_y": "4",
"id_name": "stamp13"
},
{"src": "../pic/j.png",
"pos_x": "5",
"pos_y": "5",
"id_name": "stamp14"
}
]
}
]
我检索存储在DOM元素中的数据以创建每个“{}”段。
写作:
var json_obj={};
json_obj["src"] = "../pic/cake.png";
json_obj["pos_x"] = 1;
json_obj["pos_y"] = 1;
json_obj["id_name"] = "stamp00";
var json_string= JSON.stringify( json_obj );
我得到了:
"{"src":"../pic/cake.png","pos_x":1,"pos_y":1,"id_name":"stamp00"}"
但是我如何组织这样的数据结构:
"stamp":
[] <-- An array consists of lots of JSON strings I created above."
问题:
1.两个双引号字符(在第一个和最后一个位置)是否在“
"{"src":"../pic/cake.png","pos_x":1,"pos_y":1,"id_name":"stamp00"}"
多余?
为什么他们出现?
它们是否会影响我在JSON文件中检索数据的操作?
2.我想要一种替代方法而不是写作:
var str= "\"stamp\":[";
str += json_string;
得到
""stamp":[{"src":"../pic/cake.png","pos_x":1,"pos_y":1,"id_name":"stamp00"}"
任何更聪明,更正确的方法?
答案 0 :(得分:1)
永远不要直接使用JSON字符串。只需创建您想要的结构并将其字符串化。
var json_obj={};
json_obj["src"] = "../pic/cake.png";
json_obj["pos_x"] = 1;
json_obj["pos_y"] = 1;
json_obj["id_name"] = "stamp00";
var json_document = {
stamp: [ json_obj ], // you probably want to build this array separately
};
JSON.stringify(json_document);
您看到的外部引号现在表示它是一个JavaScript字符串。内部引号(您应该看到转义,\
?)是JSON格式的一部分。