2017-02-15 14 views
0

私は簡単なエスケープ処理をJavaScriptの< - > php通信に適用しようとしています。私はうまくいきません...なぜ私は分かりません。ここJSON.parse()でエスケープする

私が書いたいくつかのテストコードです:

<head> 
    <meta charset='utf-8'> 
    <title>Test</title> 
</head> 

<body> 
    <script> 
     JSON.parse('[{"id":"43","english":"ar\"m","korean":"\ud314","date":"49 minute(s) ago."}]'); 
    </script> 
</body> 

</html> 

をエスケープ文字は単語の腕の内側の二重引用符です。

VM84:1 Uncaught SyntaxError: Unexpected token m in JSON at position 26 
    at JSON.parse (<anonymous>) 
    at test.html:11 
(anonymous) @ test.html:11 
+0

この実験のポイントは何か分かりません。サーバーから送信されたJSONに問題がある場合は、問題が発生している可能性があります。 – Pointy

答えて

3

あなたはJavaScriptで文字列としてJSON文字列が含まれている場合、バックスラッシュは、JavaScriptとJSONの両方でメタ文字であるので、あなたは、ダブルにバックスラッシュを持っている:ページを開くと、あるとき エラーが返さ構文。

JSON.parse('[{"id":"43","english":"ar\\\"m","korean":"\\ud314","date":"49 minute(s) ago."}]'); 

\"にとっては、JSONパーサーがそれを見たとき、あなたが\"を持っているように、 \文字を使用する必要があります。それはあなたのサーバーがクライアントに送信する(またはクライアントがサーバに送信する)実際 JSONでそれらの余分\を持っていない必要であることを

注意。