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

公司网站设计好网站开发的目的实习报告

公司网站设计好,网站开发的目的实习报告,医疗网站建设中心,保安公司哪家好QT笔记---JSON JSON1、JSON基本概念1.1、判断.json文件工具 2、生成.json数据3、解析.json数据 JSON 在现代软件开发中,数据的交换和存储格式至关重要。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁易…

QT笔记---JSON

  • JSON
    • 1、JSON基本概念
      • 1.1、判断.json文件工具
    • 2、生成.json数据
    • 3、解析.json数据

JSON

在现代软件开发中,数据的交换和存储格式至关重要。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁易读、易于解析和生成的特点,被广泛应用于各种应用程序中。在 QT 框架下,处理 JSON 数据同样便捷高效。
    本文参考链接:https://blog.csdn.net/qq_42432673/article/details/132115700

1、JSON基本概念

        JSON 数据结构主要由两种类型构成:对象(object)和数组(array)。对象是由键值对组成的无序集合,键必须是字符串,值可以是字符串、数字、布尔值、null、对象或数组。数组则是值的有序集合,这些值同样可以是上述各种类型。例如:

{"address": {"city": "WuHan","street": "luck"},"age": "31","hobbies": ["reading","painting","playing guitar"],"isStudent": "true","name": "John Doe","phoneNumbers": [{"number": "888-1234","type": "home"},{"number": "888-5678","type": "work"}]
}

1.1、判断.json文件工具

    JSON转C#实体类网站,可判断JSON文件是否正确:https://www.bejson.com/convert/json2csharp/

2、生成.json数据

    根据以上json内存,创建一个文件夹,将其写入.json文件夹,保存在项目下,运行代码如下所示:

//包含的头文件
#include <QMainWindow>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonArray>
#include <QString>
#include <QFile>//创建一个json文件,写入参数,并保存在对应的路径下
void MainWindow::WriteToFile()
{QString m_path = QString::fromStdString(QCoreApplication::applicationDirPath().toStdString()+"//cfg.json");createJsonFile(m_path);
}
void MainWindow::createJsonFile(const QString &filePath)
{//创建一个JSON对象QJsonObject jsonObj;//插入name 键值对到 jsonObjjsonObj["name"]="John Doe";//jsonObj.insert("name","John Doe");//插入age 键值对到 jsonObjjsonObj["age"]="31";//jsonObj.insert("age","31");//创建地址JSON对象,里面包含两个键值对QJsonObject addressObj;//插入city 键值到 “New York”addressObj.insert("city","WuHan");addressObj.insert("street","luck");jsonObj.insert("address",addressObj);//创建地址JSON对象,里面包含两个键值对QJsonArray phoneArray;//创建两个电话的JSON对象QJsonObject phoneHomeObj;phoneHomeObj.insert("type","home");phoneHomeObj.insert("number","888-1234");QJsonObject phoneWorkObj;phoneWorkObj.insert("type","work");phoneWorkObj.insert("number","888-5678");//将电话JSON数组中添加两个电话JSON对象phoneArray.append(phoneHomeObj);phoneArray.append(phoneWorkObj);//将电话JSON数组中添加两个电话JSON对象jsonObj.insert("phoneNumbers",phoneArray);//创建地址JSON对象,里面包含了三组数组QJsonArray hobbArray;hobbArray.append("reading");hobbArray.append("painting");hobbArray.append("playing guitar");jsonObj.insert("hobbies",hobbArray);jsonObj["isStudent"]="true";//创建一个JSON文档QJsonDocument jsonDoc(jsonObj);//将JSON文档内容写入文件QFile file(filePath);if(!file.open(QIODevice::WriteOnly)){//处理错误,例如可以抛出异常或者返回错误的标志return;}file.write(jsonDoc.toJson());file.close();
}

3、解析.json数据

     创建一个cfg.json文件,将其内容粘贴负责其内;

{"name": "小王","age": 30,"address": {"city": "北京","street": "人民路32号"},"phoneNumbers": [{"number": "999-123456","type": "家"},{"number": "999-654321","type": "公司"}]
}

使用QT解析以上json内容:

#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QDebug>
#include <QFile>QByteArray MainWindow::ReadJsonString(QString file_path)
{QFile file(file_path);  //根据路径打卡文件if (false == file.exists())  //判断文件是否存在{return "none";}if (false == file.open(QIODevice::ReadOnly | QIODevice::Text)) //判断文件是否可以正常以只读模式打开{return "none";}QByteArray  string_value = file.readAll();  //读出.json所以内容file.close();return string_value;
}void MainWindow::AnalyJson()
{
//json文件所在路径,可根据自己随意定制QString path= QString::fromStdString(QCoreApplication::applicationDirPath().toStdString()+"//cfg.json");QByteArray  reg_fpga = ReadJsonString(path);// 字符串格式化为JSON文档QJsonParseError err_rpt;QJsonDocument reg_fpga_root = QJsonDocument::fromJson(reg_fpga, &err_rpt);if (err_rpt.error != QJsonParseError::NoError){// 不是 JSON 对象:JSON 字符串格式错误或无效std::cout << "json 格式错误" << std::endl;//	return 0;}//将 QJsonDocument 对象中的 JSON 数据转换为 JSON 对象QJsonObject reg_object = reg_fpga_root.object();// 获取 JSON 数据中的所有键QStringList keys = reg_object.keys();// 遍历键值对for (int i = 0;i<keys.size();++i) {// 获取每一个 keyQString key = keys[i];// 通过 key 获取对应的 valueQJsonValue value = obj.value(key);if(value.isBool()){// 值是一个 boolqDebug()<<key<<":"<<value.toBool();}else if(value.isString()){// 值是一个字符串qDebug()<<key<<":"<<value.toString();}else if(value.isDouble()){// 值是一个 double 或者 int(double 和 int 都用 isDouble)qDebug()<<key<<":"<<value.toInt();}else if(value.isObject()){// 值是一个 JSON 对象qDebug()<<key<<":";// 这里偷个懒,不再像上面那样循环获取值了,而是直接通过已知的键去获取值QJsonObject addressObj = value.toObject();QString city = addressObj["city"].toString();QString street = addressObj["street"].toString();qDebug()<<"  "<<"city:"<<city;qDebug()<<"  "<<"street:"<<street;}else if (value.isArray()){// 值是一个 JSON 数组qDebug()<<key<<":";QJsonArray phoneArray = value.toArray();for (int i = 0;i<phoneArray.size();++i) {// 遍历 JSON 数组中的每一个 JSON 对象QJsonObject phoneObj = phoneArray[i].toObject();QString number = phoneObj["number"].toString();QString type = phoneObj["type"].toString();qDebug()<<"  "<<"number:"<<number;qDebug()<<"  "<<"type:"<<type;}}}
}
http://www.dtcms.com/a/402640.html

相关文章:

  • 中文网站模板下载免费网站平台怎么做的
  • 网站类型的销售软件技术培训机构
  • 佛山网站营销推广大连网站建设哪个公司好
  • 深圳网站建设推进Godaddy如何建设网站
  • dedecms做网站教程开发一平方赔多少钱
  • 网站内容建设的原则dedecms 5.7 关闭网站
  • 网站的推广方式有哪些免费网站空间 国外
  • 搭建网站什么意思网站建设的规划
  • 网站开发还找到工作吗爱吧
  • 中国建设银行大学助学贷款网站哈尔滨雕塑制作厂家
  • 游戏网站开发过程青岛网页搜索排名提升
  • 外贸电商怎么做百度荤seo公司
  • 商城的网站建设云南酒店网站建设
  • 做网站每个月可以赚多少钱如何提高网站的访问速度
  • 正规的网站制作服务电话河南今天发生的重大新闻
  • 可以做动图的视频网站重庆设计网站
  • 删除网站备案厦门电子网站建设
  • 阿里巴巴免费做网站吗nginx wordpress php7
  • 做网站只有域名龙华建站公司
  • 电商运营方案计划书windows优化大师是电脑自带的吗
  • 网站积分解决方案网站后台修改
  • 个人网站名称举例付费阅读wordpress
  • 网站必须做电子认证吗网页排版怎么设置
  • 亚马逊网站怎么做东莞免费模版网站建设
  • 高端网站建设服务商网站架构包含哪几部分
  • 网站架设方式wordpress类目权限
  • 科技网站大全品牌网站开发公司
  • 东营建设信息网老网站上海巨型网站建设
  • 电商网站设计案例高端网站建设哪个好
  • 网站建设缺乏个性东营建设网站公司