我需要这个字符串:
{ “名称”: “NE”, “类型”: “选择”, “ID”: “NE”, “宽度”:150, “项目”:[{ “ID”: “测试1”,“值“:” 测试1" , “标题”: “测试1”},{ “ID”: “TEST3”, “值”: “TEST3”, “标题”: “TEST3”},{ “ID”: “TEST2”, “值”: “TEST2”, “标题”: “TEST2”}]}
我有以下内容:
JSON.stringify(itemList)
给了我这个:
[{ “ID”: “测试1”, “值”: “测试1”, “标题”: “测试1”},{ “ID”: “TEST3”, “值”: “TEST3”, “标题” : “TEST3”},{ “ID”: “TEST2”, “值”: “TEST2”, “标题”: “TEST2”}]
我试过了:
JSON.stringify({
name: loadName(),
type: "Choice",
id: complexTableId,
width: loadWidth(),
items: JSON.stringify(itemList)
})
但我明白了:
{ “名称”: “NE”, “类型”: “选择”, “ID”: “NE”, “宽度”: “150”, “项目”: “[{\” ID \“:\ “测试1 \”,\ “值\”:\ “测试1 \”,\ “标题\”:\ “测试1 \”},{\ “ID \”:\ “TEST3 \”,\ “值\”:\ “TEST3 \”,\ “标题\”:\ “TEST3 \”},{\ “ID \”:\ “TEST2 \”,\ “值\”:\ “TEST2 \”,\ “标题\”:\ “TEST2 \”}]“}
有谁知道,我的错误在哪里?
`
答案 0 :(得分:3)
在对所有内容进行字符串化之前,无需在您的项目上调用JSON.stringify
,请尝试以下操作:
JSON.stringify({
name: loadName(),
type: "Choice",
id: complexTableId,
width: loadWidth(),
items: itemList
})
答案 1 :(得分:2)
您在JSON.stringify
两次致电itemList
。这将导致字符串化对象再次进行字符串化。
请注意以下双字符串化示例中的两个反斜杠+双引号(\"
):
// single stringify
> JSON.stringify({ test: "Hello World" });
< "{"test":"Hello World"}"
// double stringify
> JSON.stringify({ test: JSON.stringify("Hello World") });
< "{"test":"\"Hello World\""}"
如果要对对象进行正确的字符串化,那么只需在整个对象上使用JSON.stringify
一次:
JSON.stringify({
name: loadName(),
type: "Choice",
id: complexTableId,
width: loadWidth(),
items: itemList // don't include "JSON.stringify" here
});
答案 2 :(得分:1)
JSON.stringify({
name: loadName(),
type: "Choice",
id: complexTableId,
width: loadWidth(),
items: itemList
});