Qt之JSON解析
2017-01-23 23:23
399 查看
#include <QCoreApplication>
#include <QDebug>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonParseError>
//如果最外层是{},那么QJsonDocument由一个QJsonObject构成
//最外层是[],那么QJsonDocument由一个QJsonArray构成
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString jsonstr1 = "{\"name\":\"john\", \"age\":24 }";
QString jsonstr2 = "[true,999,\"string\"]";//转义字符
QJsonParseError jsonErr;
QJsonDocument doucment = QJsonDocument::fromJson(jsonstr1.toLatin1(),&jsonErr);
if (!doucment.isNull() && (jsonErr.error == QJsonParseError::NoError))// 解析未发生错误
{
if (doucment.isObject()) // JSON 文档为对象
{
QJsonObject object = doucment.object(); // 转化为对象
if (object.contains("name"))
{
QJsonValue value = object.value("name");
qDebug()<<value;
}
}
if (doucment.isArray()) // JSON文档为数组
{
QJsonArray array = doucment.array(); // 转化为数组
int nSize = array.size(); // 获取数组大小
for (int i = 0; i < nSize; ++i)
{
QJsonValue value = array.at(i);
qDebug() << value;
}
}
}
return a.exec();
}
参考博客:http://blog.csdn.net/liang19890820/article/details/52767153
相关文章推荐
- Qt 简单去掉对话框最大化、最小化按钮
- Qt学习笔记-----信号槽
- Qt4.8.6详细安装步骤(使用了i686-4.8.2-release-posix-dwarf-rt_v3-rev3,手动设置gcc和gdb)非常清楚 good
- Qt 5.4.2(自带mingw32)配置Qwt6.1.2
- qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
- Qt5中setCursor编译报错的解决
- 【Darwin学习笔记】之QTSSReflectorModule的Announce消息处理
- 【Darwin学习笔记】之QTSSReflectorModule的Describe消息处理
- 【Darwin学习笔记】之QTSSReflectorModule的Setup消息处理
- Qt 游戏开发(06) - 为游戏增加健康值和得分
- QtCreator源码分析—2.启动主程序(4篇)
- Qt技术优势
- 关于qtcreator+vs2008+CDB调试太卡的问题研究(载入符号表,以及VS调试器的注册表信息)
- 仿qq界面的抽屉类QToolBox
- QT Creator 快捷键
- QML TextInput的字体超出控件范围
- QT获取电量状态
- Qt QThread多线程模版
- 建立Qt控制台项目转变成应用程序类型项目
- Qt 之 截图功能进阶(四)截图时显示当前截图信息