如何在QJsonDocument中添加多个QJsonObject

3

我想将多个QJsonObject添加到一个QJsonDocument中。这是否可行?

它应该看起来像这样:

[
    {
        "objID": "obj1"
        //... Some other parameter
    },
    {
        "objID": "obj2"
        //...Some other parameter
    }
]

我尝试了这个:

QJsonDocument(obj1).toJson(QJsonDocument::Compact);
QJsonDocument(obj2).toJson(QJsonDocument::Compact);

但是它生成的JSON无效。

我想按照以下格式编写Json文件。这是可能的吗?{ { "objID": "obj1" //...其他一些参数 }, { "objID": "obj2" //...其他一些参数 } } - AB Bolim
1个回答

8
一个JSON文档只有一个根值。在您给出的示例中,该值是包含两个对象的数组。
要在Qt中获取该值,可以这样说:
QJsonArray array;
array << obj1;
array << obj2;
QJsonDocument(array).toJson(QJsonDocument::Compact);

我想以以下格式编写Json文件。这是可能的吗? { { "objID": "obj1" //... 其他一些参数 }, { "objID": "obj2" //...其他一些参数 } } - AB Bolim
这不是有效的 JSON;{} 表示对象,必须是 { name: value, ...}。你可以得到 [ { "objID": "obj1" //... 其他一些参数 }, { "objID": "obj2" //...其他一些参数 } ],这将是一个对象数组。 - puetzk
这是一个有效的Json文件。Json文件可以包含JArray、JObject或两者都有。您可以参考此链接获取更多信息。 - AB Bolim
那个是有效的:它有关键名称。Jobject必须是{name1: value1,name2: value2}。他们的具有占位符名称“Obj1”,“Obj2”,并满足此条件。你的要求{value1,value2},这是无效的。 - puetzk
我没有要求 { value1,value2 }?也许你误解了我的问题。 - AB Bolim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接