为什么JSON.parse会删除双引号?

时间:2013-06-15 00:12:48

标签: javascript json

拥有简单的JS代码:

var str = '[[[0,123,"John Doe"]],[[0,189,"Jane Doe, Mike Smith"]]]';
var obj = JSON.parse(str);
document.writeln(obj[1]);

Test it here

为什么要删除双引号?如何强制JS不删除双引号?


或者......如何将这个JSON转换为数组,将每个元素分开?

例如:obj[1][2] = "Jane Doe, Mike Smith"

1 个答案:

答案 0 :(得分:4)

如果您想要打印JSON,请将其转换回JSON:

document.writeln(JSON.stringify(obj[1]));

通过使用JSON.parse,您可以将JSON转换为真正的JavaScript数组。 obj中没有JSON,因此没有引号。

如果你想操纵数组,可以像对待任何其他数组一样进行操作:

var str = '[[[0,123,"John Doe"]],[[0,189,"Jane Doe, Mike Smith"]]]';
var obj = JSON.parse(str);
obj[0][0][2] = "John Smith";

然后,如果您想要回报,则必须使用JSON.stringify将其转换回JSON。