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 

...は1つだけ\です。

于 2012-07-31T17:57:12.593 に答える
1

有効なJSONには、キーと値の前後に引用符があります

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

私のために働く

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