首页 > 解决方案 > 解析作为字符串传递的多个 json - Socket.io、NodeJS 和 ExpressJS

问题描述

我有一个连接到第三方的套接字,我使用 websockets 接收数据。有时通过套接字接收的数据可能有一个包含多组数组的字符串。

解析时如何处理?

例如,我正常收到的数据:

[{a:1}, {b:2}, {c:3}]

有时,我会收到:

[{a:1}, {b:2}, {c:3}][{d:1}, {e:2}, {f:3}]

我得到以下错误,因为我猜 JSON.parse 不知道如何处理它:

Uncaught SyntaxError: Unexpected token [ in JSON at position 267
at JSON.parse (<anonymous>)

我想拆分和解析两个 json 数组。所以我的新输出是:

[{a:1}, {b:2}, {c:3}] as arr[0] and  [{d:1}, {e:2}, {f:3}] as arr[1]

标签: node.jsexpresswebsocketsocket.io

解决方案


如果您只想将字符串分成一个数组:

var str = "[{a:1}, {b:2}, {c:3}][{d:1}, {e:2}, {f:3}]";
var res = str.replace("][", "]|[");
var arr = res.split("|");

推荐阅读