繁体   English   中英

Node.js JSON.parse“意外令牌{”

[英]Node.js JSON.parse “Unexpected token {”

我有一个使用JSON.parse(datastring);的脚本JSON.parse(datastring); 解析一个字符串化的JSON。

数据字符串如下所示:

{"_id":"8b8fdd243f734b27829c92e4099f70ec.d","date":1439418654920,"player":"player1","action":"capture"}
{"_id":"a3b7d70d8a074f9ba8b13368ee947f1e.d","date":1439418074476,"player":"player1","action":"capture"}

第一个工作得很好,但是第二个我遇到了一个奇怪的错误,我找不到解决方法。

undefined:2
{"_id":"a3b7d70d8a074f9ba8b13368ee947f1e.d","date": 1439418074476,"player":"pla
^
SyntaxError: Unexpected token {
    at Object.parse (native)
    at Socket.<anonymous> (/home/ubuntu/workspace/lib/engine.js:12:18)
    at Socket.emit (events.js:95:17)
    at Socket.<anonymous> (_stream_readable.js:765:14)
    at Socket.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:427:10)
    at emitReadable (_stream_readable.js:423:5)
    at readableAddChunk (_stream_readable.js:166:9)
    at Socket.Readable.push (_stream_readable.js:128:10)
    at Pipe.onread (net.js:529:21)

有任何想法吗?

JSON.parse希望传递一个包含JSON文本的字符串,而不是包含多个 JSON文本的字符串。

分别解析每行(假设您可以相信换行符将仅位于输入中的JSON文本之间)…

var json_texts = datastring.split("\n");

…或以数组开头表示数据。

[
    {"_id":"8b8fdd243f734b27829c92e4099f70ec.d","date":1439418654920,"player":"player1","action":"capture"},
    {"_id":"a3b7d70d8a074f9ba8b13368ee947f1e.d","date":1439418074476,"player":"player1","action":"capture"}
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM