我的Javascript中有一个JSON字符串硬编码。
valiJsonString = '{"ssss","ddddddddd\"ddd"}';
DOM说 - > {"ssss","ddddddddd"ddd"}
有人可以告诉我为什么javascript会将\"
替换为"
吗?
// try to parse
valiJsonString secureEvalJSON (valiJsonString) //<-- error: jsonString is not valid
答案 0 :(得分:2)
\
是一个转义字符。试试\\
答案 1 :(得分:2)
如果你想让你的字符串通过转义,那么你需要转义你的转义字符:
valiJsonString = '{"ssss","ddddddddd\\"ddd"}';
答案 2 :(得分:2)
“DOM说”没有多大意义,因为DOM没有说什么。你的意思是Firebug(或其他一些开发控制台)中的对象浏览器吗?
现在,在字符串中,\"
是引号字符。你必须补偿这种逃避,因为你不想要它,而是逐字逐句。
所以也许你想要\\
后跟"
,这是斜线字符后跟引号字符。
此外,给定的JSON看起来应该代表数组而不是对象,因为你没有密钥:
var str = '["ssss","ddddddddd\\"ddd"]';
现在,浏览器中此JSON格式字符串的实际值为:
["ssss","ddddddddd\"ddd"]
答案 3 :(得分:1)
我添加了第二个\(\是转义字符)并修复了缺少=和表格类型{} vs []