我正在看一个看起来像这样的 json
{
"key": "cow",
"value": "woof"
}
{
"key": "dog",
"value": "moo"
}
我想解析它,但 JSON.parse 不起作用,因为整个事情并不是真正的json。实际上也没有任何换行符,所以看起来像
{"key": "cow","value": "woof"}{"key": "dog","value": "moo"}
至于为什么,这是来自 Comet 端点的流。理想情况下,它应该一个接一个地出现,但有时会有中断,在它回来后,我会收到自中断发生以来发生的所有更改的列表,串在一起。因此,如果三个 dicts 本来是在连接中断时掉下来的,我会在最后一次得到它们:
{"key": "cow","value": "woof"}{"key": "dog","value": "moo"}{"key":"cat","value":"baaa"}
有什么方便的方法可以在浏览器中解析这种 json 吗?
编辑:对不起,伙计们,我没有提到对象可以任意嵌套,并且可以包含各种东西,Unicode 字符、数组、对象、带有对象的数组、各种形状和大小的括号等等等等。所以大多数 hacky在这些情况下,字符串拆分或正则表达式解决方案将失败。我没有把这些放在例子中,因为我很懒,但一个更有代表性的例子可能是
{
"key": "cow",
"value": {
"body": "big",
"name": "sally",
"children": [
"bob",
"daisy"
]
},
"alt-key": "牛"
}
{
"key": "dog",
"value": "moo{}{}{}}}} i love brackets[[[]] ]]]] }{}",
"array": [
"豆沙包",
"叉烧包"
]
}
尽管 regex/stringsplit 的事情在 95% 的时间里都可以工作,但我正在寻找一个严格正确的解决方案,当输入正确的 json 时它总是可以工作