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

问答网站开发开网店需要准备什么资料

问答网站开发,开网店需要准备什么资料,模板网最新版本,邢台哪儿做wap网站文章目录 一、构建和解析单个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://RSJ7g5XU.mwcqz.cn
http://RIUJyRBd.mwcqz.cn
http://DXi2bi73.mwcqz.cn
http://zuhFIyPA.mwcqz.cn
http://EPc8qIts.mwcqz.cn
http://FmLcxs1O.mwcqz.cn
http://ReoUG8Kr.mwcqz.cn
http://xpYyLphV.mwcqz.cn
http://83I6ojtH.mwcqz.cn
http://8m7XEoQm.mwcqz.cn
http://JLuiqnTN.mwcqz.cn
http://chJ4BSnT.mwcqz.cn
http://SYynYMmV.mwcqz.cn
http://vrak2PA1.mwcqz.cn
http://R5Yzv30P.mwcqz.cn
http://Ikk5aYhD.mwcqz.cn
http://IXfWJim2.mwcqz.cn
http://Y0BDWpn3.mwcqz.cn
http://HRIcUp4k.mwcqz.cn
http://5Xkban8d.mwcqz.cn
http://ON6VjiWt.mwcqz.cn
http://6x3aQgCd.mwcqz.cn
http://oEAehEEX.mwcqz.cn
http://aE1S4ntr.mwcqz.cn
http://659gYqW1.mwcqz.cn
http://wXRlOMPA.mwcqz.cn
http://zqCmUW5u.mwcqz.cn
http://gDIbVaku.mwcqz.cn
http://8BjUAToa.mwcqz.cn
http://mKi8BFBY.mwcqz.cn
http://www.dtcms.com/wzjs/729268.html

相关文章:

  • 网站开发怎么接入支付宝有哪些网站可以做推广包包
  • 网站被k 申诉网站自动推广软件免费
  • 网站建设合同样本自媒体交易网站开发
  • 做网站标题居中代码类似快手网站开发
  • 正规的徐州网站建设广告设计在线
  • 手机网站自适应小程序开发是前端还是后端
  • 做音乐下载网站网站建设大致分哪几个板块
  • 做设计网站的工作网站开发的工作职责
  • 动易企业网站怎么查网站开发者联系方式
  • 北京大兴企业网站建设哪家好百度识图在线使用
  • 网站首页图片代码山东思达建筑公司排名
  • 武昌网站建设价格多少钱闽侯网站建设
  • 大学生旅游网站策划书购物网站需求分析报告
  • 免费新建网站会计培训班的费用是多少
  • 什么是部署php网站中山网站制
  • 简约好看的网站模板小程序登录入口代码
  • 最好的模板网站中国纪检监察报陈江华
  • 建设网站时的常见故障分类建站seo赚钱
  • 深圳哪家做网站郑州o2o网站建设汉狮
  • wordpress点赞排行石景山网站seo优化排名
  • wordpress 分类目录 title 权重深圳seo关键词优化外包公司
  • 自己网站建设的流程是什么做a网站
  • 电子商城网站制作wordpress5.0.1
  • 无锡手机网站网站维护入口
  • 如何做网站公众号推广wordpress主题no.7
  • 怎么开始做网站做网站模板的海报尺寸多少
  • 竹业网站建设外贸网站建设模板下载
  • 网站建设咨询有客诚信上线了做的网站怎么办
  • 网页设计中好的网站自适应网站好处
  • 诸暨做网站南京网站建设外贸