1. ホーム
  2. javascript

[解決済み] JSONの改行はどのように処理するのですか?

2022-03-14 14:43:45

質問

JSONを生成し、JavaScriptでオブジェクトに取り込もうとしています。エラーが出続けます。以下は私が持っているものです。

var data = '{"count" : 1, "stack" : "sometext\n\n"}';
var dataObj = eval('('+data+')');

これはエラーになります。

unterminated string literal

JSON.parse(data) 同様のエラーメッセージが表示されます。 Unexpected token ↵ Chrome では "、" unterminated string literal FirefoxとIEでは、"です。

を外すと \n の後に sometext を実行すると、どちらの場合もエラーが消えます。どうして \n を作る evalJSON.parse が失敗します。

解決方法は?

これがあなたの欲しいものです。

var data = '{"count" : 1, "stack" : "sometext\\n\\n"}';

をエスケープする必要があります。 \ を文字列の中に入れてください。 \ ) でないと、JSONデータではなく、JSONソースの改行になってしまいます。