2017-04-18 32 views
0

我聽的一些數據,將在以下格式的WebSocket崩潰。的NodeJS json_parse上asteriks

當我用data = JSON.parse(message);解析數據時,如果它獲得星號*星號,它會崩潰。

有什麼特別的*使它崩潰?我雖然只是刪除它們,但這會破壞代碼中的用戶註釋。

回答

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()可以拋出異常。