Qt之简单使用Json
来源:互联网 发布:大数据架构师指南 pdf 编辑:程序博客网 时间:2024/05/22 06:06
关于Qt中的Json的基本知识,可以阅读之前的文档。
Qt之认识JSON
贴上代码:
一、使用QJsonObject:
#include <QApplication>#include <QDebug>#include <QJsonObject>#include <QJsonDocument>int main(int argc, char *argv[]){ QApplication a(argc, argv); /*生成Json*/ QJsonObject json; json.insert("name", QString("Qt")); json.insert("version", 5); json.insert("windows", true); QJsonDocument document; document.setObject(json); QByteArray byte_array = document.toJson(QJsonDocument::Compact); QString json_str(byte_array); qDebug()<<"生成Json:"<<json_str; /*解析Json*/ QJsonParseError json_error; QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, &json_error); if(json_error.error == QJsonParseError::NoError) { if(parse_doucment.isObject()) //判断是否是对象 { QJsonObject obj = parse_doucment.object(); if(obj.contains("name")) { QJsonValue name_value = obj.take("name"); if(name_value.isString()) { QString name = name_value.toString(); qDebug()<<"name "<<name; } } if(obj.contains("version")) { QJsonValue version_value = obj.take("version"); if(version_value.isDouble()) { int version = version_value.toVariant().toInt(); qDebug()<<"version "<<version; } } if(obj.contains("windows")) { QJsonValue version_value = obj.take("windows"); if(version_value.isBool()) { bool flag = version_value.toBool(); qDebug()<<"windows "<<flag; } } } } return a.exec();}运行的结果:
二、使用QJsonArray:
#include <QApplication>#include <QDebug>#include <QJsonArray>#include <QJsonValue>#include <QJsonDocument>int main(int argc, char *argv[]){ QApplication a(argc, argv); /*生成Json*/ QJsonArray json; json.insert(0, QString("Qt")); json.insert(1, QString("version")); json.insert(2, true); QJsonDocument document; document.setArray(json); QByteArray byte_array = document.toJson(QJsonDocument::Compact); QString json_str(byte_array); qDebug()<<"生成Json:"<<json_str; /*解析Json*/ QJsonParseError json_error; QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, &json_error); if (json_error.error == QJsonParseError::NoError) { if (parse_doucment.isArray()) //判断是否是数组 { QJsonArray array = parse_doucment.array(); int size = array.size(); for (int i=0; i < size; i++) { QJsonValue value = array.at(i); if (value.isString()) { QString name = value.toString(); qDebug()<<"数组索引:"<<i<<", name:"<<name; } else if (value.isBool()) { bool flag = value.toBool(); qDebug()<<"数组索引:"<<i<<", flag:"<<flag; } } } } return a.exec();}
运行结果:
参考了一些知识:http://blog.sina.com.cn/s/blog_a6fb6cc90101gnxm.html
4 0
- Qt之简单使用Json
- Qt之QButtonGroup简单使用
- JSON 之 FastJson 的简单使用
- javaWeb之json的简单使用
- python之简单使用json文件
- Qt 教程 之 菜单简单使用
- Qt之QSettings的简单使用
- Qt之json解析
- Qt之认识JSON
- Qt之JSON
- Qt之JSON解析
- qt 之json
- Qt-JSON的使用
- Qt-JSON的使用
- Qt-JSON的使用
- QT使用QJson生成解析,简单的JSON,复杂的Json使用方法
- 自学QT之创建json
- 简单使用JSON
- String.Format用法
- 【转载】毕业后的五年拉开大家差距的原因
- Ftp download
- php 获取大文件行数
- 【JavaScript 高级程序设计阅读笔记】JSON
- Qt之简单使用Json
- Android可以动态控制图片显示区域的自定义ImageView
- 从数据库里读出数据,并将其按照下拉框的选择填入表格
- 【PHP】PHP开发工具
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- 流转换成文件,存库 保存本地
- 论文笔记:going deeper with convolutions
- dubbo配置文件异常
- [leetcode] 300. Longest Increasing Subsequence 解题报告