JavaScript - 使用托架和新行空间解析JSON

fuz*_*uzz 4 javascript jquery parsing json

我使用以下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 );
Run Code Online (Sandbox Code Playgroud)

这是我从以下位置提取JSON字符串的JS文件的示例:

JsonString = /*JSON[*/{"entities":[{"type":"EntityPlayer","x":88,"y":138}]}/*]JSON*/;
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,但是如果带有JSON字符串的JS文件包含回车并且不在一条完整的行上,那么我会收到语法错误.

例:

JsonString = /*JSON[*/{
     "entities":[{
         "type":"EntityPlayer",
         "x":88,
         "y":138}]
     }/*]JSON*/;
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

JSON.parse: unexpected non-whitespace character after JSON data
Run Code Online (Sandbox Code Playgroud)

任何想法如何通过剥离空格或删除回车和新的行空格来修改我的解析工作?

jor*_*are 5

data = JSON.parse( (jsonMatch ? jsonMatch[1] : data).replace(/\n/g,"") );
Run Code Online (Sandbox Code Playgroud)