通过node.js套接字发送文本JSON如何处理'\ n \ r'符号
我有客户端 – 服务器应用程序,服务器端在Flash上的Node.js客户端,通过套接字彼此进行通信。 我写string化JSON到套接字,并在服务器上读取数据:
socket.on('data', function(data) { console.log(JSON.parse(data.toString()); var json = JSON.parse(data.toString()) });
一切正常,直到我开始发送包含'\ n \ r'的长文本消息到服务器JSON。 在那我得到错误:
SyntaxError:意外的input结束
因为'\ n \ r'意味着包装的结束。 从文本中删除“\ n \ r”并不是我需要它正确显示文本的好方法。 请给我最好的方法来处理这个问题。 提前致谢。
一个简单的方法是try
parsing,如果没有,然后等待更多的数据:
var json = ''; socket.on('data', function(data) { try { json = JSON.parse(data); } catch (e) { json += data; try { json = JSON.parse(json); // Now it's fine. } catch (e) { // Wait for more. return; } } // Now it's fine. // At the end do; json = ''; });
使用JSON.stringify(data)
而不是.toString()