nodejs json_parse在asteriks上崩溃

时间:2017-04-18 12:44:24

标签: json node.js

我在websocket上搜索一些数据,这些数据将采用以下格式:

'{"mode": "test", "code": "' + editor.getValue() + '", "testTeam": "basic"}'

用户将编写一些代码,然后我们将在沙箱中运行。

当我使用data = JSON.parse(message);解析数据时,如果它获得字符*星号,则会崩溃。

*有什么特别之处让它崩溃?我只是删除它们但会破坏代码中的用户注释。

1 个答案:

答案 0 :(得分:1)

而不是:

'{"mode": "test", "code": "' + editor.getValue() + '", "testTeam": "basic"}'

使用它:

JSON.stringify({mode: "test", code: editor.getValue(), testTeam: "basic"})

拥有正确的JSON字符串。

可能发生的事情是editor.getValue()包含引号或换行符,而您没有正确转义它们。

这只是猜测,因为在解析之前你没有提供message的实际例子,但是你不应该直接用字符串连接编写JSON。使用JSON.stringify()将JavaScript对象序列化为JSON。

同时始终将JSON.parse()JSON.stringify()放在try / catch内以避免因输入错误而导致崩溃,或使用类似tryjson的模块执行此操作你:

JSON.parse()JSON.stringify()都可以抛出异常。