温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行QJsonArray字符串与QVariantList 对象相互转换

发布时间:2021-12-13 21:37:12 来源:亿速云 阅读:850 作者:柒染 栏目:互联网科技

如何进行QJsonArray字符串与QVariantList 对象相互转换,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在Qt中QVariantList 使用起来很方便,如果涉及到数据的传输,需要将QVariantList 数据转换为JsonArray字符串,这个转换Qt已经实现好了,只需要调用接口就可以完成转换,代码如下:

main.cpp

#include <QCoreApplication>#include <QJsonArray>#include <QJsonDocument>#include <QJsonValue>#include <QJsonObject> #include <QVariantMap>#include <QVariantList>#include <QDebug>  int main(int argc, char *argv[]){    QCoreApplication a(argc, argv);     QVariantList QVarList;     QVariantMap tmpvm;    for ( int i = 0; i < 3; i ++ )    {        tmpvm.clear();        tmpvm["name"] = QString("Test%1").arg(i);        tmpvm["no"] = QString::number(i);         QVarList<<tmpvm;    }     qDebug()<<"qvarList: "<<QVarList;      //QVariantList转为Jsonarray字符串    QJsonArray jsonArray = QJsonArray::fromVariantList(QVarList);     QJsonDocument jsonDoc(jsonArray);    qDebug()<<"------------------------------QVariantList to json-------------------------------";    qDebug() << jsonDoc.toJson();     //Jsonarray字符串转为QVariantList    QString str = "[{\"no\": \"1\", \"name\": \"Jack\"},{\"no\": \"2\", \"name\": \"Tom\"},{\"no\": \"3\", \"name\": \"Stans\"}]";    QJsonDocument json = QJsonDocument::fromJson(str.toLatin1());    qDebug()<<"------------------------------json to QVariantList-------------------------------";     qDebug()<<"qvarList: "<<json.array().toVariantList();;      return a.exec();}

执行结果:

为了查看方便,下面的结果手动调整了下格式。


qvarList:  (QVariant(QVariantMap, QMap(("name", QVariant(QString, "Test0"))("no", QVariant(QString, "0")))), QVariant(QVariantMap, QMap(("name", QVariant(QString, "Test1"))("no", QVariant(QString, "1")))), QVariant(QVariantMap, QMap(("name", QVariant(QString, "Test2"))("no", QVariant(QString, "2")))))
------------------------------QVariantList to json-------------------------------"[ { "name": "Test0", "no": "0" }, { "name": "Test1", "no": "1" }, { "name": "Test2", "no": "2" }]"------------------------------json to QVariantList-------------------------------qvarList:  (QVariant(QVariantMap, QMap(("name", QVariant(QString, "Jack"))("no", QVariant(QString, "1")))), QVariant(QVariantMap, QMap(("name", QVariant(QString, "Tom"))("no", QVariant(QString, "2")))),QVariant(QVariantMap, QMap(("name", QVariant(QString, "Stans"))("no", QVariant(QString, "3")))))

看完上述内容,你们掌握如何进行QJsonArray字符串与QVariantList 对象相互转换的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI