1

演示

alert('How do i make abspath==U:\\path?'); //shouldnt i only need one \?
alert(JSON.stringify({abspath:'U:\path'})); //wtf
alert(JSON.stringify({abspath:'U:\\path'}));//wtf2
//alert(JSON.stringify({abspath:'U:/path'}));//different
alert(JSON.stringify({abspath:"U:\path"}));  //even here!?
alert(JSON.stringify({abspath:"U:\\path"})); //fuuuuuuuuuuuuu
4

4 回答 4

4

当脚本输出{"abspath":"U:\\path"}时,这是一个有效的 JSON 字符串。它看起来不像是一个有效的对象,因为它仍然被转义——JSON 字符串并不是为了人类可读的。

如果你要解码那个字符串,你最终会得到想要的值。您的输出仍然被转义,因为它应该是,等待解码。如果它没有在编码字符串中转义,您将无法对其进行解码。

见发生: http: //jsfiddle.net/dhzMQ/1/(需要可用性console

延伸阅读

于 2012-07-31T17:47:25.487 回答
3
alert( JSON.stringify({abspath:"U:\\path"}) )

这是正确的,您需要\\JSON 格式,因为这就是 \ 的存储方式。

您可以通过解析该 JSON 并查询 abspath 来判断。

alert(JSON.parse(JSON.stringify({abspath:"U:\\path"})).abspath); 
alert( JSON.stringify({abspath:"U:\\path"}) )
于 2012-07-31T17:49:54.330 回答
2

存储在对象中的字符串:

JSON.parse(JSON.stringify({"abspath": "U:\\path"})).abspath 

...只有一个\

于 2012-07-31T17:57:12.593 回答
1

有效的 JSON 在键和值周围有引号

{"abspath":"U:\\path"}

为我工作

JSON.stringify({"abspath":"U:\\path"});
于 2012-07-31T17:45:41.350 回答