假设我有一个对象变量:
var obj = {
key: '\"Hello World\"'
}
然后我尝试在Chrome devtools控制台中使用JSON.stringify
将其解析为字符串:
JSON.stringify(obj) // "{"key":"\"Hello World\""}"
我得到了结果"{"key":"\"Hello World\""}"
。然后我把它交给一个字符串
var str = '{"key":"\"Hello World\""}'
至少我尝试将其转换回obj:
JSON.parse(str);
但是浏览器告诉我错误Uncaught SyntaxError
让我困惑的是为什么这是错的?我从原始对象中获取字符串,我只想将其转回。
如何解决此问题?如果我想完成将obj转换为字符串并将其返回的工作,我该怎么办?
答案 0 :(得分:4)
您尝试将JSON转换为字符串文字,方法是将其包含在'
个字符中,但\
字符在JavaScript字符串文字中具有特殊含义,\"
转换为"
在JavaScript解析器到达JSON解析器之前到\
。
您还需要转义var str = '{"key":"\\"Hello World\\""}'
个字符。
var result = {"key":"\"Hello World\""};
也就是说,一般来说,最好不要尝试在JavaScript字符串文字中嵌入JSON,只是为了用JSON.parse解析它们。 JSON语法是JavaScript的一个子集,因此您可以直接使用它。
genK : for k in J to (2**(g+1))-d-1 generate
begin
gen2d : if ((k - J) mod (2 * d)) = 0 generate
-- stuff
end generate gen2d;
end generate;
答案 1 :(得分:0)
尝试:
var str = '{"key":"\\"Hello World\\""}';