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"))))
)
微信公众号:
Json字符串与QVariantList 对象相互转换的更多相关文章
- json 字符串转换成对象,对象转换成json字符串
json 字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法: [注意jquery版本问题] var str = '{"name":&qu ...
- JSON字符串和JS对象之间的转换
JSON字符串和JS对象之间的转换 1 json字符串转换为js对象 1.1 标准json格式字符串转换为Js对象 JSON字符串 str JSON.parse(str) eval(str) eva ...
- JSON字符串与java对象的转换
所需的jar包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar ...
- JSON 字符串 与 java 对象的转换
jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //j ...
- Json字符串转换为java对象的各种实现方法【json_lib框架、Gson、org.json】
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mengzhengbin520.blog.51cto.com/7590564/12 ...
- 多层次的Json字符串转化为对象
using Arvato.CRM.DataTrans.ConsoleHost.Model;using System;using System.Collections.Generic;using Sys ...
- Json对象与Json字符串的转化、JSON字符串与Java对象的转换
一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...
- json字符串转java对象
今天遇到一个问题,前端ajax获取到一个javaBean对象,好多方法发ajax请求需要把这个对象再传到后端,后端再根据这个对象进行操作(之前计划传递id,但发现传递id的话,后端多个方法都需要根据i ...
- .net 4中使用 dynamic,将json字符串转成对象的 万能方法。
在.net 4中增加了对弱类型的支持.为和弱类型的对象进行数据交换提供了方法.我们常常会遇到将json字符串转成对象的情景,虽然可以使用 JavaScriptSerializer 或者 DataCon ...
随机推荐
- CTFHub_技能树_SQL注入Ⅱ
SQL注入 MySQL结构 进行尝试: 尝试查看表名: 尝试查看列名: 发现无法直接输出: 使用时间注入脚本跑出结果: import requests import time session = re ...
- 08-Python面对对象进阶
一.面向对象编程三大特征 Python是面向对象的语言,同样支持面向对象的编程的三大特征:继承,封装,多态. 封装是指隐藏对象的属性和实现细节,只对外提供必要的一些方法,私有属性,私有方法是实现封装地 ...
- redis入门指南(四)—— redis如何节省空间
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 节省空间 1.redis对于它所支持的五种数据类型,每种都提供了两种及以上的编码方式去存储(具体 ...
- J.U.C体系进阶(一):juc-executors 执行器框架
Java - J.U.C体系进阶 作者:Kerwin 邮箱:806857264@qq.com 说到做到,就是我的忍道! 主要内容: juc-executors 执行器框架 juc-locks 锁框架 ...
- XML解析---利用XStream解析xml数据及反构造Java对象
XStream 是一个轻量级的.简单易用的开放源代码 Java库,用于将 Java 对象序列化为 XML 或者再转换回来.而且XStream还能将java对象转成其它格式,比如JSon. 需要用到的包 ...
- 第十章:Android消息机制
Android的消息机制主要是指Handler的云心机制,Handler的运行需要底层的MessageQueue和Looper支持. Handler是Android消息机制的上层接口. 通过Handl ...
- OSCP Learning Notes - Capstone(1)
Kioptrix Level 1.1 Walkthrough Preparation: Download the virtual machine from the following website ...
- Python Ethical Hacking - VULNERABILITY SCANNER(8)
Implementing Code To Discover XSS in Parameters 1. Watch the URL of the XSS reflected page carefully ...
- STL Stack(栈)学习笔记 + 洛谷 P1449 后缀表达式
稍微看了看刘汝佳的白皮书,“实用主义”的STL实在是香到我了,而且在实验室大佬的推荐下我开始了stl的学习. 每篇附带一个题目方便理解,那行,直接开始. 毕竟是实用主义,所以就按照给的题目的例子来理解 ...
- 设计模式:command模式
目的:将命令设计成类的形式,并可以组织成队列 优点: 在需要的情况下,可以比较容易地将命令记入日志 可以容易的实现对请求的撤销和重做 由于新的具体命令类不影响其他的命令类,因此增加新的具体命令类很容易 ...