web-dev-qa-db-ja.com

JSON.stringifyはエスケープしませんか?

`JSON.stringify?オブジェクトを文字列化するには、引用符がエスケープされていませんか?引用符をエスケープすると想定されていると誤解していますか?

これは、引用符がエスケープされずにテンプレートに出力されます。

{"console":{"free":false}}
15
Harry

プロパティ名を囲む引用符はエスケープする必要はなく、文字列内の引用符のみをエスケープする必要があります。あなたのJSONは結構です:)

6
Ricardo Tomasi

それは文字をエスケープしません、いいえ、そのためにencodeURIComponentがあり、encodeURIComponent(JSON.stringify(obj))のようにそれらを一緒に使用できます

24
Jim Blackler

オブジェクトを2回文字列化してトリックを実行します

console.log(JSON.stringify(JSON.stringify({"console":{"free":false}})));
// "{\"console\":{\"free\":false}}"
12
Moes

検査する問題のあるコードがないので、何か他のことが起こっているのではないかと思っています。テストとして...

<div id="test"/>

var ex = {'test':'This is "text".'};

$('#test').text(JSON.stringify(ex));

出力{"test":"This is \"text\"."}(<エスケープされた二重引用符に注意してください)

http://jsfiddle.net/userdude/YVGbH/

6
Jared Farrish