从 qjsonarray 中删除大括号并从文档中替换方括号
Posted
技术标签:
【中文标题】从 qjsonarray 中删除大括号并从文档中替换方括号【英文标题】:remove curly brackets from qjsonarray and replace square brackets from document 【发布时间】:2018-08-29 05:55:15 【问题描述】:我正在向 QJsonObjects 插入很多不同的值,如下所示:
//gender inserted to QJsonObject gender
QJsonObject gender;
gender.insert("gender", person->gender());
//birthDate inserted to QJsonObject birthDate
QJsonObject birthDate;
birthDate.insert("birthDate", person->birthdate().toString());
之后,我将 QJsonObjects 附加到 QJsonArray,如下所示:
//Inserting all objects to QJsonDocument m_jsonDocument
QJsonArray allObjects;
allObjects.append(gender);
allObjects.append(birthDate);
然后我把它全部放到QJsonDocument:
m_jsonDocument->setArray(allObjects);
输出:
[
"gender": "male"
,
"birthDate": "2001-12-19"
]
我需要的是删除对象周围的大括号并将方括号替换为大括号。我是否需要将这些放入 QString 并删除和替换,或者是否有更简单的方法来修改对象、数组或整个文档?我试图环顾四周,但还没有找到合适的解决方案。
这就是我希望看到的输出:
"gender": "male",
"birthDate": "2001-12-19"
对象内部有很多东西,它需要作为 FHIR 标准。对象里面有对象,文档还需要大量修改。
【问题讨论】:
【参考方案1】:您应该只使用一个 QJsonObject 并将属性添加到该对象:
QJsonObject obj;
obj.insert("gender", person->gender());
obj.insert("birthDate", person->birthdate().toString());
m_jsonDocument->setObject(obj);
输出:
"birthDate": "2001-12-19",
"gender": "male"
【讨论】:
非常感谢 eyllanec! Thant用括号解决了我的问题!有没有一种简单的方法来影响对象内对象的顺序?目前,在我将对象设置为文档后,使用此方法会弄乱对象的顺序。 @Lauri json 是字典,按字母顺序组织,因此访问时间最短,标准也是如此。 json 中的顺序对 API 来说并不重要,所以不用担心,您的 API 会正确理解它。 谢谢!是的,它是按字母顺序排列的。 API 似乎并不在意。那太棒了!再次感谢!以上是关于从 qjsonarray 中删除大括号并从文档中替换方括号的主要内容,如果未能解决你的问题,请参考以下文章