首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中结合在一起的解析

在javascript中结合在一起的解析
EN

Stack Overflow用户
提问于 2012-07-10 16:33:12
回答 4查看 252关注 0票数 3

我在看一个像这样的json

代码语言:javascript
复制
{
    "key": "cow",
    "value": "woof"
}
{   
    "key": "dog",
    "value": "moo"
}

我想解析它,但是JSON.parse不能工作,因为它作为一个整体并不是真正的json。实际上也没有新行,所以看起来

代码语言:javascript
复制
{"key": "cow","value": "woof"}{"key": "dog","value": "moo"}

至于原因,这是来自彗星端点的流。理想情况下,它应该一个接一个地出现,但有时会有一个中断,当它回来后,我会收到自中断发生以来发生的所有更改的列表,并将其串在一起。所以,如果在连接中断的时候,三条断条注定会掉下来,那么我将在最后一次把它们全部拿出来:

代码语言:javascript
复制
{"key": "cow","value": "woof"}{"key": "dog","value": "moo"}{"key":"cat","value":"baaa"}

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

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

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

尽管正则/字符串拆分在95%的情况下都能工作,但我正在寻找一个严格正确的解决方案,在正确的json中始终有效。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-10 18:09:26

如果是我,我只需要编写一个JSON解析器,它可以理解JSON表达式流。JSON就像语法一样容易解析,使一个能够为一个新句子“重置”自己的解析器非常简单(一旦解析器存在)。

见鬼,您可以从json.org解析器本身开始。

要可靠地“修复”当前数据,不管怎么说,它都是一个非常接近于编写解析器的项目。

票数 0
EN

Stack Overflow用户

发布于 2012-07-10 16:36:28

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

代码语言:javascript
复制
var json = '[' + json.replace(/}{/g, '},{') + ']';

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

票数 4
EN

Stack Overflow用户

发布于 2012-07-10 16:37:09

就像这样:

代码语言:javascript
复制
var arrayOfObjects = flowstring.match(/{.*?}/g).map(function(value){
    return JSON.parse(value);
});

您将拥有以下对象数组:

代码语言:javascript
复制
[{"key": "cow","value": "woof"},{"key": "dog","value": "moo"}.......]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11417817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档