QT4中使用第三方库QJson解析JSON文件。

QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中。

用到的头文件

#include <QJsonArray>

#include <QJsonDocument>

#include <QJsonObject>

json解析

1.

QByteArray jsonData = "[{\"id\":\"11\", \"name\":\"aaa\"},"
"{\"id\":\"22\", \"name\":\"bbb\"},"
"{\"id\":\"33\", \"name\":\"ccc\"}]"; QJsonParseError jsonError;
QJsonDocument jsonDoucment = QJsonDocument::fromJson(jsonData, &jsonError);
if(jsonError.error == QJsonParseError::NoError){ if(!(jsonDoucment.isNull()||jsonDoucment.isEmpty())){ QVariantList dataList=jsonDoucment.toVariant().toList();
foreach (QVariant data, dataList) {
QVariantMap dataMap=data.toMap();
qDebug()<<"id:"<<dataMap["id"].toString()<<"name:"<<dataMap["name"].toString();
}
} }else{ //检查错误类型
qDebug()<<"jsonError:"<<jsonError.errorString();
}

2.生成json

QJsonArray jsonArray;
QJsonObject jsonObj1;
jsonObj1.insert ("task_name","task1");
jsonObj1.insert ("task_status:","ok");
jsonObj1.insert ("task_time:","2019_3_26"); QJsonObject jsonObj2;
jsonObj2.insert ("task_name","task2");
jsonObj2.insert ("task_status:","error");
jsonObj2.insert ("task_time:","2019_3_27"); jsonArray.append (jsonObj1);
jsonArray.append (jsonObj2); qDebug()<<jsonArray;

QJsonArray([{"task_name":"task1","task_status:":"ok","task_time:":"2019_3_26"},{"task_name":"task2","task_status:":"error","task_time:":"2019_3_27"}])

最新文章

  1. 使用VS Code开发调试.NET Core 多项目
  2. 【bzoj1227】 SDOI2009—虔诚的墓主人
  3. PHP变量入门教程(1)基础
  4. ThinkPHP动态版本控制
  5. myfocus官方网站已经挂掉,相关下载已经从googlecode转到网盘
  6. libc abi.dylib: terminate_handler unexpectedly threw an exception
  7. PHP PSR-1 基本代码规范(中文版)
  8. Windows多线程编程总结
  9. 一张图让你看懂锻压、CNC、压铸、冲压四类工艺!
  10. uploadify上传图片(限制最多五张)
  11. crud的意识
  12. 将数组适配到ListView
  13. 视觉词袋模型(BOVW)
  14. Smobiler Service是什么?(Smobiler——.NET移动开发平台)
  15. [Abp 源码分析]六、工作单元的实现
  16. 老男孩Python九期全栈学习笔记3
  17. Unity 项目中委托Delegate用法案例
  18. JSON常见操作
  19. Linux Shell常用技巧(六)
  20. SQLite3知识(1)--教程

热门文章

  1. 【POJ3974】最长回文字串
  2. mysql常见问题解决
  3. zoj3707(Calculate Prime S)解题报告
  4. 惊喜的gift
  5. OpenCV 无法启动此程序,因为计算机中丢失opencv_core249.dll。请尝试重新安装改程序已解决此问题
  6. Microsoft JET Database Engine 错误 &#39;80004005&#39; 未指定错误
  7. ip更换
  8. P5002 专心OI - 找祖先
  9. Scala进阶之路-Scala高级语法之隐式(implicit)详解
  10. 记录一次iptables端口转发的配置