0
我聽的一些數據,將在以下格式的WebSocket崩潰。的NodeJS json_parse上asteriks
當我用data = JSON.parse(message);
解析數據時,如果它獲得星號*星號,它會崩潰。
有什麼特別的*使它崩潰?我雖然只是刪除它們,但這會破壞代碼中的用戶註釋。
我聽的一些數據,將在以下格式的WebSocket崩潰。的NodeJS json_parse上asteriks
當我用data = JSON.parse(message);
解析數據時,如果它獲得星號*星號,它會崩潰。
有什麼特別的*使它崩潰?我雖然只是刪除它們,但這會破壞代碼中的用戶註釋。
取而代之的是:
'{"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()
可以拋出異常。