首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QJsonObject::插入与直接分配给QJsonValueRef的比较?

QJsonObject::插入与直接分配给QJsonValueRef的比较?
EN

Stack Overflow用户
提问于 2017-06-20 22:30:11
回答 1查看 1.7K关注 0票数 5

我在Qt中使用JSON已经很长一段时间了,我总是按照在示例中显示的方式来做。但是,我想知道,与向QJsonValueRef添加项目时使用QJsonObject::insert相比,这种直接分配给QJsonObject的直接分配实际上是否有区别,即:

  • json["name"] = mName;
  • json.insert("name", mName);

有什么不同,还是只是一种编码风格的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 05:52:01

从概念上讲,这是不同的。operator[](const QString &key)返回key指向的JSON value的引用(即不包括key ),而insert方法将添加/替换该值,然后将iterator返回到该值(即我们可以通过迭代器访问keyvalue )。因此,使用operator[]只能访问(引用) key指向的特定值,在使用insert时,可以使用iterator访问JSON对象中的元素(键、值)本身和前一个/下一个元素(如果有的话)。

从技术上讲,根据源代码的说法,在operator[](const QString &key)中,首先它将搜索key指向的值,如果存在,将返回引用。如果该值不存在,insert将以一个空的QJSonValue()作为第二个参数进行调用,那么将返回对这个新值的引用。因为调用operator[]之后是值修改,所以这两个操作的效果都是相同的,也就是说,它将mValue分配给具有键"name"的元素。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44664016

复制
相关文章

相似问题

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