将QMAP转换为JSON
Convert QMap to JSON
我有一个qmap对象,我想将其转换为JSON。我很困惑如何实现这一目标。
我阅读了QT文档,说我可以使用QDataStream将QMAP转换为JSON,但是QDataStream似乎转换文件:http://doc.qt.io/qt-4.8/datastreamformat.html
// c++
QMap<QString, int> myMap;
最容易将地图转换为QVariantMap
,可以自动转换为JSON文档:
QMap<QString, int> myMap;
QVariantMap vmap;
QMapIterator<QString, int> i(myMap);
while (i.hasNext()) {
i.next();
vmap.insert(i.key(), i.value());
}
QJsonDocument json = QJsonDocument::fromVariant(vmap);
如果需要的话,可以使用同一件事来创建QJsonObject
,通过QJsonObject::fromVariant()
静态方法。尽管对于QJsonObject
,您可以跳过转换到变体映射步骤,然后在迭代地图时手动填充对象:
QMap<QString, int> myMap;
QJsonObject json;
QMapIterator<QString, int> i(myMap);
while (i.hasNext()) {
i.next();
json.insert(i.key(), i.value());
}
如果使用QT 5.5或更高版本,则可以使用qjSondocument :: fromVariant,您的地图可以轻松地转换为qvariantMap。如果没有,请尝试QJSON
出于您的目的,您正在寻找QMAP序列化,请参阅此链接:序列化QT。尝试使用QByTearray设置构造函数,类似的内容:
QByteArray serializeMap(const QMap<QString, int>& map) {
QByteArray buffer;
QDataStream stream(&buffer, QIODevice::WriteOnly);
out << map;
return out;
}
是,将在qbyTearray中序列化您的地图,可以轻松地转换为QString或std :: String。
相关文章:
- 在c++中使用nlohmann从类到json的转换
- JSON转换为nlohmann JSON-lib中的结构数组
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 问:通过 Apache Arrow 在 C++ 中将 PARQUET 转换为 JSON?
- 将 QGraphicsView 或 Scene 转换为 XML/JSON
- 将可变参数模板参数转换为 JSON 字符串
- 从 json 字符串将 QVariant 转换为 QList<MyClass>
- 使用 Json 转换器反序列化 WCF 服务中的C++字符串
- 如何将矢量转换为 json 对象?C++
- 将C++具有 150+ 变量的类转换为 Json 对象
- 如何将任何值转换为对象并使用 boost::p roperty_tree json 添加成员
- 我想将字符串转换为 Json 格式并返回字符串向量作为答案
- 使用CPPRESTSDK将字符串转换为Web :: JSON
- 转换一个在C 中不断更改为INT的JSON值
- FlatBuffers:未支撑的工会向量错误将JSON文件转换为二进制文件
- 由于字符串到JSON转换而产生的异常如何解决
- 在C++中将JSON转换为CSV
- C++将json转换为object
- 在c++中有办法把JSON转换成XML吗?