带引号的JSON.parse字符串

时间:2010-06-18 02:32:06

标签: javascript json

我有这个:

JSON.parse('{"130.00000001":{"p_cod":"130.00000001","value":"130.00000001 HDD Upgrade to 2x 250GB HDD 2.5\" SATA2 7200rpm"}}');

JSONLint说这是完全有效的json。但是在执行时我遇到JSON.parse错误。

但是,如果我将我的代码更改为:

    JSON.parse('{"130.00000001":{"p_cod":"130.00000001","value":"130.00000001 HDD Upgrade to 2x 250GB HDD 2.5\\" SATA2 7200rpm"}}');

(注意双反斜杠)

它有效,但现在JSONLint说invalid json

有人可以帮助理解这种行为吗?

1 个答案:

答案 0 :(得分:18)

这是有线格式之间的区别,以及您需要在代码中编写以获取有线格式的内容。当你在代码中声明这个时,你需要在你的文字中加上双\,所以字符串得到一个反斜杠(否则它将解释\“作为一个转义序列,只是声明一个”并把它放在你的字符串中)。如果您打印出文字的值,您将看到一个反斜杠。