次の JS コードを使用して、別の JS ファイルから JSON 文字列を解析しています。
// extract JSON from a module's JS
var jsonMatch = data.match( /\/\*JSON\[\*\/([\s\S]*?)\/\*\]JSON\*\// );
data = JSON.parse( jsonMatch ? jsonMatch[1] : data );
これは、JSON 文字列を抽出する JS ファイルの例です。
JsonString = /*JSON[*/{"entities":[{"type":"EntityPlayer","x":88,"y":138}]}/*]JSON*/;
このコードは問題なく動作しますが、JSON 文字列を含む JS ファイルにキャリッジ リターンが含まれていて、1 行に収まっていない場合は、構文エラーが発生します。
例:
JsonString = /*JSON[*/{
"entities":[{
"type":"EntityPlayer",
"x":88,
"y":138}]
}/*]JSON*/;
次のエラーを返します。
JSON.parse: unexpected non-whitespace character after JSON data
空白を削除するか、改行と改行スペースを削除して、解析を変更して機能させる方法はありますか?