当前位置: 首页 > wzjs >正文

网盘怎么做电影网站外贸营销推广

网盘怎么做电影网站,外贸营销推广,wordpress 修改404,德清县建设银行官方网站文章目录 一、构建和解析单个JSON对象二、JSON对象中嵌套多个JSON对象三、JSON对象中组建多个数组对象四、构建和解析数组对象 一、构建和解析单个JSON对象 1.1 JSON对象的构建 使用key-value形式生成JSON对象 #include <QJsonObject> #include <QJsonDocument> …

文章目录

    • 一、构建和解析单个JSON对象
    • 二、JSON对象中嵌套多个JSON对象
    • 三、JSON对象中组建多个数组对象
    • 四、构建和解析数组对象

一、构建和解析单个JSON对象

1.1 JSON对象的构建
使用key-value形式生成JSON对象

#include <QJsonObject>
#include <QJsonDocument>
#include <QDebug>int main() {// 创建 JSON 对象QJsonObject jsonObj;jsonObj["name"] = "张三";jsonObj["age"] = 28;jsonObj["isStudent"] = false;// 转为 JSON 字符串QJsonDocument doc(jsonObj);QString strJson(doc.toJson(QJsonDocument::Compact)); // 或 Indented// 输出 JSON 字符串qDebug() << strJson;return 0;
}

输出结果:

{"name":"张三","age":28,"isStudent":false}

使用insert函数生成JSON对象

#include <QJsonObject>
#include <QJsonDocument>
#include <QDebug>int main()
{// 创建 JSON 对象QJsonObject jsonObj;jsonObj.insert("name", "李四");jsonObj.insert("age", 30);jsonObj.insert("isStudent", false);// 转为 JSON 字符串QJsonDocument doc(jsonObj);QString strJson(doc.toJson(QJsonDocument::Indented)); // 或 Indented// 输出 JSON 字符串qDebug() << strJson;return 0;
}

输出结果:

{"name":"李四","age":30,"isStudent":false}

1.2 JSON对象的解析

#include <QJsonObject>
#include <QJsonDocument>
#include <QDebug>int main()
{QString jsonString = R"({"name":"张三","age":28,"isStudent":false})";QJsonParseError parseError;QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8(), &parseError);if (parseError.error != QJsonParseError::NoError) {qDebug() << "解析错误:" << parseError.errorString();return -1;}if (!doc.isObject()) {qDebug() << "JSON 不是对象类型";return -1;}QJsonObject obj = doc.object();// 判断并提取 nameif (obj.contains("name") && obj["name"].isString()) {QString name = obj["name"].toString();qDebug() << "姓名:" << name;} else {qDebug() << "字段 'name' 缺失或类型错误";}// 判断并提取 ageif (obj.contains("age") && obj["age"].isDouble()) {int age = obj["age"].toInt();qDebug() << "年龄:" << age;} else {qDebug() << "字段 'age' 缺失或类型错误";}// 判断并提取 isStudentif (obj.contains("isStudent") && obj["isStudent"].isBool()) {bool isStudent = obj["isStudent"].toBool();qDebug() << "是否学生:" << isStudent;} else {qDebug() << "字段 'isStudent' 缺失或类型错误";}return 0;
}

输出结果:
在这里插入图片描述

二、JSON对象中嵌套多个JSON对象

2.1 构建和解析包含多个子对象的JSON 对象
构建JSON对象:

#include <QJsonObject>
#include <QJsonDocument>
#include <QDebug>int main() {// 创建第一个子对象(user1)QJsonObject user1;user1.insert("name", "张三");user1.insert("age", 28);// 创建第二个子对象(user2)QJsonObject user2;user2.insert("name", "李四");user2.insert("age", 30);// 创建顶层 JSON 对象QJsonObject root;root.insert("user1", user1);root.insert("user2", user2);// 将顶层对象序列化为字符串QJsonDocument doc(root);QString jsonStr = doc.toJson(QJsonDocument::Indented);qDebug() << jsonStr;return 0;
}

输出结果:

{"user1": {"name": "张三","age": 28},"user2": {"name": "李四","age": 30}
}

解析JSON对象:

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
#include <QDebug>int main() {QString jsonString = R"({"user1": { "name": "张三", "age": 28 },"user2": { "name": "李四", "age": 30 }})";// 解析 JSON 字符串QJsonParseError err;QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8(), &err);if (err.error != QJsonParseError::NoError) {qDebug() << "解析错误:" << err.errorString();return -1;}if (!doc.isObject()) {qDebug() << "顶层不是 JSON 对象";return -1;}QJsonObject rootObj = doc.object();// 遍历 user1 和 user2for (const QString& key : rootObj.keys()) {QJsonValue val = rootObj.value(key);if (!val.isObject()) {qDebug() << key << "不是 JSON 对象";continue;}QJsonObject userObj = val.toObject();QString name = userObj.contains("name") && userObj["name"].isString()? userObj["name"].toString() : "未知";int age = userObj.contains("age") && userObj["age"].isDouble()? userObj["age"].toInt() : -1;qDebug() << key << ": 姓名 =" << name << ", 年龄 =" << age;}return 0;
}

输出结果:
在这里插入图片描述
2.2 子对象中包含JSON对象
构建JSON对象:

#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>int main() {// 构建 address 对象 for user1QJsonObject address1;address1.insert("city", "北京");address1.insert("zip", "100000");// 构建 user1 对象QJsonObject user1;user1.insert("name", "张三");user1.insert("age", 28);user1.insert("address", address1);// 构建 address 对象 for user2QJsonObject address2;address2.insert("city", "上海");address2.insert("zip", "200000");// 构建 user2 对象QJsonObject user2;user2.insert("name", "李四");user2.insert("age", 30);user2.insert("address", address2);// 构建根对象QJsonObject root;root.insert("user1", user1);root.insert("user2", user2);// 转为字符串QJsonDocument doc(root);qDebug().noquote() << doc.toJson(QJsonDocument::Indented);return 0;
}

输出结果:

{"user1": {"name": "张三","age": 28,"address": {"city": "北京","zip": "100000"}},"user2": {"name": "李四","age": 30,"address": {"city": "上海","zip": "200000"}}
}

解析JSON对象:

#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>int main() {QJsonDocument doc(root);QJsonObject rootObj = doc.object();for (const QString& key : rootObj.keys()) {QJsonObject userObj = rootObj.value(key).toObject();QString name = userObj.value("name").toString();int age = userObj.value("age").toInt();if (userObj.contains("address") && userObj["address"].isObject()) {QJsonObject addr = userObj["address"].toObject();QString city = addr.value("city").toString();QString zip = addr.value("zip").toString();qDebug() << key << ": 姓名 =" << name << ", 年龄 =" << age<< ", 城市 =" << city << ", 邮编 =" << zip;} else {qDebug() << key << ": 姓名 =" << name << ", 年龄 =" << age << "(无地址信息)";}}return 0;
}

输出结果:
在这里插入图片描述

三、JSON对象中组建多个数组对象

构建对象:

#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>
#include <QDebug>int main() {// 学生数组QJsonArray studentArray;QJsonObject student1;student1.insert("name", "张三");student1.insert("age", 18);studentArray.append(student1);QJsonObject student2;student2.insert("name", "李四");student2.insert("age", 19);studentArray.append(student2);// 教师数组QJsonArray teacherArray;QJsonObject teacher1;teacher1.insert("name", "王老师");teacher1.insert("subject", "数学");teacherArray.append(teacher1);QJsonObject teacher2;teacher2.insert("name", "赵老师");teacher2.insert("subject", "英语");teacherArray.append(teacher2);// 构建根对象QJsonObject root;root.insert("students", studentArray);root.insert("teachers", teacherArray);// 输出 JSONQJsonDocument doc(root);qDebug().noquote() << doc.toJson(QJsonDocument::Indented);return 0;
}

输出结果:

{"students": [{"name": "张三","age": 18},{"name": "李四","age": 19}],"teachers": [{"name": "王老师","subject": "数学"},{"name": "赵老师","subject": "英语"}]
}

解析对象:

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
#include <QDebug>int main() {QString jsonString = R"({"students": [{ "name": "张三", "age": 18 },{ "name": "李四", "age": 19 }],"teachers": [{ "name": "王老师", "subject": "数学" },{ "name": "赵老师", "subject": "英语" }]})";QJsonParseError err;QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8(), &err);if (err.error != QJsonParseError::NoError) {qDebug() << "解析失败:" << err.errorString();return -1;}if (!doc.isObject()) {qDebug() << "JSON 顶层不是对象";return -1;}QJsonObject root = doc.object();// 解析 students 数组if (root.contains("students") && root["students"].isArray()) {QJsonArray students = root["students"].toArray();qDebug() << "[学生列表]";for (const QJsonValue& val : students) {if (val.isObject()) {QJsonObject stu = val.toObject();QString name = stu.value("name").toString("未知");int age = stu.value("age").toInt(-1);qDebug() << "姓名:" << name << ", 年龄:" << age;}}}// 解析 teachers 数组if (root.contains("teachers") && root["teachers"].isArray()) {QJsonArray teachers = root["teachers"].toArray();qDebug() << "\n[教师列表]";for (const QJsonValue& val : teachers) {if (val.isObject()) {QJsonObject teacher = val.toObject();QString name = teacher.value("name").toString("未知");QString subject = teacher.value("subject").toString("未知");qDebug() << "姓名:" << name << ", 学科:" << subject;}}}return 0;
}

输出结果:
在这里插入图片描述

四、构建和解析数组对象

生成一个 JSON 数组对象:

#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>
#include <QDebug>int main() {// 创建 JSON 数组QJsonArray jsonArray;// 添加第一个对象QJsonObject obj1;obj1.insert("name", "张三");obj1.insert("age", 18);jsonArray.append(obj1);// 添加第二个对象QJsonObject obj2;obj2.insert("name", "李四");obj2.insert("age", 19);jsonArray.append(obj2);// 序列化为 JSON 字符串(数组作为顶层)QJsonDocument doc(jsonArray);QString jsonStr = doc.toJson(QJsonDocument::Indented);qDebug().noquote() << jsonStr;return 0;
}

输出结果:

[{"name": "张三","age": 18},{"name": "李四","age": 19}
]

解析一个 JSON 数组对象:

#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonParseError>
#include <QDebug>int main() {QString jsonString = R"([{ "name": "张三", "age": 18 },{ "name": "李四", "age": 19 }])";// 解析 JSON 字符串QJsonParseError err;QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8(), &err);if (err.error != QJsonParseError::NoError) {qDebug() << "解析失败:" << err.errorString();return -1;}if (!doc.isArray()) {qDebug() << "顶层不是数组";return -1;}QJsonArray array = doc.array();// 遍历数组for (const QJsonValue& val : array) {if (!val.isObject()) continue;QJsonObject obj = val.toObject();QString name = obj.value("name").toString("未知");int age = obj.value("age").toInt(-1);qDebug() << "姓名:" << name << ", 年龄:" << age;}return 0;
}

输出结果:
在这里插入图片描述

http://www.dtcms.com/wzjs/104139.html

相关文章:

  • 0716网站建设太原整站优化排名外包
  • 战鼓网这种网站怎么做郑州网站推广电话
  • 网站内容如何更新百度免费官网入口
  • 外包网站开发合同百度快速排名 搜
  • 网站建设佰首选金手指三b2b商务平台
  • 好的网站建设商家外链平台
  • 软件开发项目管理办法网站优化塔山双喜
  • 专业婚纱摄影网站制作教育培训排行榜前十名
  • 迅美网站建设珠海seo快速排名
  • wp网站怎么用插件做html网页免费推广神器
  • wordpress 微信机器人网站seo站群软件
  • 画册设计需要注意的事项武汉做seo公司
  • 建设网站实验活动小结网站查询域名入口
  • 聊城做网站网络公司网站建设网站设计
  • 网站竞价排名中小型企业网站设计与开发
  • 珠海网站建设王道下拉強外包客服平台
  • 武汉网站建设推广服务百度的营销策略
  • 新疆省住房和城乡建设厅网站百度账号注册中心
  • 婚礼策划公司优化公司组织架构
  • 视频宣传片制作拍摄成都搜索优化整站优化
  • 郑州建设招标办网站中国互联网数据平台
  • 深圳电子烟网站建设soso搜索引擎
  • 做一个网页版面多少钱seo网站推广费用
  • 在哪里查公司名字有没有注册seo最新教程
  • 百度信息流广告昆明seo技术培训
  • 新疆建设兵团监狱管理局网站网络营销案例实例
  • 网站建设如何优化疫情防控 这些措施你应该知道
  • wordpress 下载插件xydown网站页面优化内容包括哪些
  • 网站建设策划方案百度推广怎么赚钱
  • 阳泉网站建设公司西安网络推广运营公司