JSON对象和数组
来源:互联网 发布:淘宝网瓷灸罐 编辑:程序博客网 时间:2024/04/20 15:46
main.cpp
#include <QCoreApplication>#include <QJsonObject>#include <QJsonDocument>#include <QDebug>#include <QJsonArray>#include "game.h"/*{ "Cross Platform": true, "From": 1991, "Name": "Qt"}*/void jsonObject(){ // 构建 JSON 对象 QJsonObject json; json.insert("Name", "Qt"); json.insert("From", 1991); json.insert("Cross Platform", true); // 构建 JSON 文档 QJsonDocument document; document.setObject(json); QByteArray byteArray = document.toJson(QJsonDocument::Compact); QString strJson(byteArray); qDebug() << "strJson: " << strJson; // "{\"Cross Platform\":true,\"From\":1991,\"Name\":\"Qt\"}" // 解析 JSON 文档 QJsonParseError jsonError; QJsonDocument doucment = QJsonDocument::fromJson(byteArray, &jsonError); // 转化为 JSON 文档 if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) { // 解析未发生错误 if (doucment.isObject()) { // JSON 文档为对象 QJsonObject object = doucment.object(); // 转化为对象 if (object.contains("Name")) { // 包含指定的 key QJsonValue value = object.value("Name"); // 获取指定 key 对应的 value if (value.isString()) { // 判断 value 是否为字符串 QString strName = value.toString(); // 将 value 转化为字符串 qDebug() << "Name : " << strName; } } if (object.contains("From")) { QJsonValue value = object.value("From"); if (value.isDouble()) { int nFrom = value.toVariant().toInt(); qDebug() << "From : " << nFrom; } } if (object.contains("Cross Platform")) { QJsonValue value = object.value("Cross Platform"); if (value.isBool()) { bool bCrossPlatform = value.toBool(); qDebug() << "CrossPlatform : " << bCrossPlatform; } } } }}/*[ "Qt", 5.7, true]*/void jsonArray(){ // 构建 JSON 数组 QJsonArray json; json.insert(0, QString("Qt")); json.insert(1, QString("version")); json.insert(2, true);// json.append("Qt");// json.append(5.7);// json.append(true); // 构建 JSON 文档 QJsonDocument document; document.setArray(json); QByteArray byteArray = document.toJson(QJsonDocument::Compact); QString strJson(byteArray); qDebug() << "strJson:" << strJson; // "[\"Qt\",\"version\",true]" // 解析 JSON 文档 QJsonParseError jsonError; QJsonDocument doucment = QJsonDocument::fromJson(byteArray, &jsonError); // 转化为 JSON 文档 if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) { // 解析未发生错误 if (doucment.isArray()) { // JSON 文档为数组 QJsonArray array = doucment.array(); // 转化为数组 int nSize = array.size(); // 获取数组大小 for (int i = 0; i < nSize; ++i) { // 遍历数组 QJsonValue value = array.at(i); if (value.type() == QJsonValue::String) { QString strName = value.toString(); qDebug() << strName; } if (value.type() == QJsonValue::Double) { double dVersion = value.toDouble(); qDebug() << dVersion; } if (value.type() == QJsonValue::Bool) { bool bCrossPlatform = value.toBool(); qDebug() << bCrossPlatform; } } } }}/*{ "Company": "Digia", "From": 1991, "Name": "Qt", "Page": { "Developers": "https://www.qt.io/developers/", "Download": "https://www.qt.io/download/", "Home": "https://www.qt.io/" }, "Version": [ 4.8, 5.2, 5.7 ]}*/void jsonObjectArray(){ // 构建 Json 数组 - Version QJsonArray versionArray; versionArray.append(4.8); versionArray.append(5.2); versionArray.append(5.7); // 构建 Json 对象 - Page QJsonObject pageObject; pageObject.insert("Home", "https://www.qt.io/"); pageObject.insert("Download", "https://www.qt.io/download/"); pageObject.insert("Developers", "https://www.qt.io/developers/"); // 构建 Json 对象 QJsonObject json; json.insert("Name", "Qt"); json.insert("Company", "Digia"); json.insert("From", 1991); json.insert("Version", QJsonValue(versionArray)); json.insert("Page", QJsonValue(pageObject)); // 构建 Json 文档 QJsonDocument document; document.setObject(json); QByteArray byteArray = document.toJson(QJsonDocument::Compact); QString strJson(byteArray); qDebug() << "strJson:" << strJson; // strJson: "{\"Company\":\"Digia\",\"From\":1991,\"Name\":\"Qt\",\"Page\":{\"Developers\":\"https://www.qt.io/developers/\",\"Download\":\"https://www.qt.io/download/\",\"Home\":\"https://www.qt.io/\"},\"Version\":[4.7999999999999998,5.2000000000000002,5.7000000000000002]}" // 解析 JSON 文档 QJsonParseError jsonError; QJsonDocument doucment = QJsonDocument::fromJson(byteArray, &jsonError); // 转化为 JSON 文档 if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) { // 解析未发生错误 if (doucment.isObject()) { // JSON 文档为对象 QJsonObject object = doucment.object(); // 转化为对象 if (object.contains("Name")) { QJsonValue value = object.value("Name"); if (value.isString()) { QString strName = value.toString(); qDebug() << "Name : " << strName; } } if (object.contains("Company")) { QJsonValue value = object.value("Company"); if (value.isString()) { QString strCompany = value.toString(); qDebug() << "Company : " << strCompany; } } if (object.contains("From")) { QJsonValue value = object.value("From"); if (value.isDouble()) { int nFrom = value.toVariant().toInt(); qDebug() << "From : " << nFrom; } } if (object.contains("Version")) { QJsonValue value = object.value("Version"); if (value.isArray()) { // Version 的 value 是数组 QJsonArray array = value.toArray(); int nSize = array.size(); for (int i = 0; i < nSize; ++i) { QJsonValue value = array.at(i); if (value.isDouble()) { double dVersion = value.toDouble(); qDebug() << "Version : " << dVersion; } } } } if (object.contains("Page")) { QJsonValue value = object.value("Page"); if (value.isObject()) { // Page 的 value 是对象 QJsonObject obj = value.toObject(); if (obj.contains("Home")) { QJsonValue value = obj.value("Home"); if (value.isString()) { QString strHome = value.toString(); qDebug() << "Home : " << strHome; } } if (obj.contains("Download")) { QJsonValue value = obj.value("Download"); if (value.isString()) { QString strDownload = value.toString(); qDebug() << "Download : " << strDownload; } } if (obj.contains("Developers")) { QJsonValue value = obj.value("Developers"); if (value.isString()) { QString strDevelopers = value.toString(); qDebug() << "Developers : " << strDevelopers; } } } } } }}int main(int argc, char *argv[]){ QCoreApplication a(argc, argv);// jsonObject();// jsonArray();// jsonObjectArray(); return a.exec();}
阅读全文
0 0
- JSON对象和数组
- JSON对象和数组
- json对象和数组对象
- JSon对象、JSon数组和JSon字符串。
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- json数组对象和对象数组
- 项目框架使用实例
- python3连接MySQL数据库
- Redis3.0的主从、集群高可用
- kotlin 学习记录 基本语法 (3)
- 常见的javaScript正则表达式
- JSON对象和数组
- AndroidStudio解决:Error:Connection timed out: connect. If you are behind an HTTP proxy, please configu
- CSU 1808 地铁 最短路变形
- uptime 获取运行时间,负载 在线用户
- [leetcode]: 刷题目录
- SpringBoot应用之消息队列
- 博弈论之尼姆博弈
- selenium打开高版本火狐浏览器
- hive row_number()