Json字符串与QVariantList 对象相互转换

简介: Json字符串与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"))))
)​
目录
相关文章
|
5月前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
4月前
|
XML JSON 前端开发
json字符串CSS格式化
完成以上步骤后,你便能在网页中看到格式化后的JSON数据,它们将按照CSS定义的样式进行展示,使数据更易于阅读和理解。通过有效地结合JSON和CSS,你可以创建出更加丰富且易于交互的网页内容。
218 64
|
3月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
428 7
|
3月前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
128 3
|
4月前
|
XML JSON JavaScript
JSON对象的stringify()和parse()方法使用
本文阐述了JSON对象的`stringify()`和`parse()`方法的用法,包括如何将JavaScript对象转换为JSON字符串,以及如何将JSON字符串解析回JavaScript对象,并讨论了转换过程中需要注意的事项。
JSON对象的stringify()和parse()方法使用
|
4月前
|
JSON 前端开发 中间件
React读取properties配置文件转化为json对象并使用在url地址中
本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。
102 1
|
4月前
|
XML JSON 前端开发
json字符串CSS格式化
json字符串CSS格式化
73 5
|
4月前
|
JSON 数据格式 Python
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
|
5月前
|
JSON Java 数据格式
Java系列之:生成JSON字符串
这篇文章介绍了两种在Java中生成JSON字符串的方法:使用`JSONObject`类及其`toJSONString`方法来动态生成,以及手动拼接字符串的方式来创建JSON格式的字符串。
Java系列之:生成JSON字符串
|
5月前
|
JSON Go 数据格式
Go实现json字符串与各类struct相互转换
文章通过Go语言示例代码详细演示了如何实现JSON字符串与各类struct之间的相互转换,包括结构体对象生成JSON字符串和JSON字符串映射到struct对象的过程。
43 0

热门文章

最新文章