如何读取包含多个根元素JSON文件?(How to read a JSON file contain

2019-06-26 12:25发布

如果我有,其内容看起来像一个文件:

{"one": 1}
{"two": 2}

我可以简单地分析每个单独的线(使用单独的JSON对象JsonCpp )。 但是,如果该文件的结构是这样不太方便:

{
   "one":1
}

{
   "two":2
}

Answer 1:

在你的问题也不例子是一个有效的JSON对象; JSON对象可能只有一个根。 你必须将文件拆分成两个对象,然后解析他们。

您可以使用http://jsonlint.com ,看看是否给定的字符串是有效的JSON或没有。

所以,我建议,要么改变什么都为之倾倒多个JSON对象到一个单一的文件做在单独的文件,或将每个对象作为一个JSON根对象的值。

如果你没有在无论是创建这些控件,那么你就完蛋了解析文件自己挑选出不同的根对象。

这里的编码JSON对象的数据的有效方法:

{
    "one": 1,
    "two": 2
}

或者,如果你真的需要单独的对象,就像这样:

{
    "one":
    {
        "number": 1
    },
    "two":
    {
        "number": 2
    }
}


Answer 2:

罗伯肯尼迪是正确的。 称这是第二次将提取的下一个对象,所以on.Most json的LIB不能帮你做在一个单一的根。 除非你是在使用QT更高端的框架。



Answer 3:

没有人提到的数组:

[
  {"one": 1},
  {"two": 2}
]

是有效的JSON和可能做的OP想要的东西。



文章来源: How to read a JSON file containing multiple root elements?
标签: c++ jsoncpp