0

我现在正在使用 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"}"

有什么更聪明更正确的方法吗?

4

1 回答 1

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 格式的一部分。

于 2013-02-27T02:01:51.133 回答