优雅的非const引用QVariantMap节点?

时间:2010-08-20 18:44:57

标签: c++ json qt

基本上我需要生成一个嵌套的QVariantMap。 (想想JSON):

{ "foo" : 1, "bar" : { "node" : 0 } }

我用Qt这样做:

QVariantMap r, r_bar;

r["foo"] = QVariant(1);
r_bar["node"] = QVariant(0);

r["bar"] = r_bar;

对于大型嵌套结构来说非常不方便。有没有一种优雅的方式来做这个,比如这个(假句法)?:

r["foo"] = QVariant(1);
r["bar"]["node"] = QVariant(0);

我不能这样做:

r["foo"].toMap()["node"] = QVariant(0)

因为QVariant的所有“toSomething”函数都返回对象的副本,而不是对它的引用。

任何人都可以帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您只能使用这样的地图:

r["foo"] = QVariant(1);
r["bar/node"] = QVariant(0);

这种方法的唯一问题是你失去了迭代子地图的能力。没有简单的方法可以找到“bar”节点的子节点。

相关问题