2017-07-05 9 views
0

次の理由で、ブラウザでJSON解析エラーが発生します。それは、リテラル文字列に保存された有効なJSONのように見え、パーサに渡されます。私たちstringifed jsonをjavascript文字列に入れてパースすることはできませんか?引用符がエスケープされたスクリプトのJSONリテラル

<script> 
    var text='{"value": "I said, \"hello\""}'; 
    var selectGroupsRows =JSON.parse(text); 
</script> 
+0

'' \ ''文字列リテラル内のエスケープ文字*や*のJSON文字列があります。 '' {"value": "私は言った、" hello ""} "は' {"value": "私は" hello ""} 'と言った。 –

+0

* "stringifed jsonをjavascript文字列に入れて解析することはできませんか?" *あなたがそのことを正確に意味するかどうかに依存します文字列リテラルは独自の解析規則( '' \ ''の扱いや '' ''と '' '' '文字列リテラルを終了する可能性がある)ので、最初に*の特殊文字*をエスケープする必要があります。あなたの例では、 '' \ ''をエスケープしませんでした。もちろん、JSON.stringify()が返すものを簡単に解析できます。 –

答えて

0

引用符を2回エスケープする必要があります(javascriptでは1回、JSONでは1回)。

var text='{"value": "I said, \"hello\""}'; 

はする必要があります

var text='{"value": "I said, \\"hello\\""}'; 
+0

いいえ、それは 'var text =' {"value": "私は\\" hello \\ ""} '; 'と言っていますが、' \ "' 。しかし、ここで '' 'をエスケープする必要はありません。 –

+0

@FelixKlingこれをキャッチしてくれてありがとう!私は私の答えを更新しました。 – InternetUnexplorer

関連する問題