我有:
QJsonObject obj1({"bla" : "lab"})
QJsonObject obj2({"bla2" : "lab2"})
我需要:
QJsonObject obj3({"bla" : "lab", "bla2" : "lab2"})
或在JSON中:
{
"bla" : "lab"
}
{
"bla2" : "lab2"
}
我需要:
{
"bla" : "lab",
"bla2" : "lab2"
}
如何实现呢?
我倾向于避免显式循环,所以我的解决办法是使用一个皈依到并从 QVariantMap
,又名QMap<QString, QVariant>
:
用QJsonObject::toVariantMap
把所有的JSON对象到QVariantMap
使用QMap::insert
插入所有地图成一个
使用QJsonObject::fromVariantMap
转换生成的地图回JSON对象
注意:如果所有JSON对象都包含唯一键,则建议的解决方案将最好地工作,因为文档指出:
如果map包含具有相同键的多个条目,则该键的最终值是不确定的。
这是我为您准备的一个简单示例,以演示如何实现建议的解决方案:
QJsonObject json1{{"foo_key", "foo_value"}};
QJsonObject json2{{"moo_key", "moo_value"}, {"boo_key", "boo_value"}};
QVariantMap map = json1.toVariantMap();
map.insert(json2.toVariantMap());
qDebug() << QJsonObject::fromVariantMap(map);
本示例产生以下结果:
QJsonObject({"boo_key":"boo_value","foo_key":"foo_value","moo_key":"moo_value"})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句