gpt4 book ai didi

javascript - 在javascript中解析粘在一起的json

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:57 26 4
gpt4 key购买 nike

我在看一个看起来像这样的 json

{
"key": "cow",
"value": "woof"
}
{
"key": "dog",
"value": "moo"
}

我想解析它,但是 JSON.parse 不起作用,因为整个东西不是真的 json。实际上也没有任何换行符,所以它看起来像

{"key": "cow","value": "woof"}{"key": "dog","value": "moo"}

至于原因,这是来自 Comet 端点的流。理想情况下,它应该一个接一个地出现,但有时会出现中断,在它返回后,我会收到自中断发生以来发生的所有更改的列表,这些更改串在一起。因此,如果在连接中断时三个指令要关闭,我将在最后一次全部获取:

{"key": "cow","value": "woof"}{"key": "dog","value": "moo"}{"key":"cat","value":"baaa"}

有没有什么方便的方法可以在浏览器中解析这种json?

编辑:对不起,伙计们,我没有提到对象可以任意嵌套并且可以包含各种各样的东西,Unicode 字符、数组、对象、包含对象的数组、各种形状和大小的括号等等。所以大多数 hacky string-split 或 regex 解决方案在这些情况下都会失败。我没有把这些放在例子中,因为我很懒,但一个更有代表性的例子可能是

{
"key": "cow",
"value": {
"body": "big",
"name": "sally",
"children": [
"bob",
"daisy"
]
},
"alt-key": "牛"
}
{
"key": "dog",
"value": "moo{}{}{}}}} i love brackets[[[]] ]]]] }{}",
"array": [
"豆沙包",
"叉烧包"
]
}

虽然 regex/stringsplit 的东西在 95% 的时间里都能工作,但我正在寻找一个严格正确的解决方案,当输入正确的 json 时它总是能工作

最佳答案

如果值和键不包含 }{,您可以简单地添加逗号使其成为有效的 JSON(并添加方括号使其成为数组):

var json = '[' + json.replace(/}{/g, '},{') + ']';

如果您只得到一个对象作为响应,这甚至可以工作。

关于javascript - 在javascript中解析粘在一起的json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com