一、说明
先要明白json是什么,json说白了就是键值对形式的数据格式,key是字符串,值可以是对象、数组、字符串、基础数据类型等,主要用于场景是,前后端数据传输,作为项目配置文件,比如web端比较流行的vue,相比于xml格式的优点是体积更轻,更简洁,单位携带数据更多等特点,现在json格式已经说是应用非常广泛了。json格式的内容中不能出现注释,不然无法解析,相比于xml可以注释,这个也可以说是个遗憾,毕竟json属于轻量级文本,但是我们可以通过一些特殊处理达到注释的要求,这样,对于文本我们也就更容易理解,比如,web前端的webpack在解析配置json文件时就针对注释做了处理。
二、qt使用json
说回正题,qt中我们用qjson来进行解析。首先要使用需要引入相关头文件
#include <qjsondocument.h>
#include <qjsonobject.h>
1、读取json文件
以读取下面这个文件内容为例:
/* 目前只支持 (左斜杠* + *左斜杠) 作为注释,且不能交替,即注释(左斜杠* + *左斜杠)里面不能包含(左斜杠* + *左斜杠)嵌套 */
/* qt要成功使用mysql:请参考:https://blog.youkuaiyun.com/IT_CREATE/article/details/119155290?spm=1001.2014.3001.5501 */
{
"dataBaseDrive":"mysql", /* sql驱动名,当前支持mysql、sqllite */
"dataBaseNameParam":{ /* 数据库名称设置 */
"names":["infosystem", "infosystem.db"], /* 数据库名称集合 */
"useIndex":0 /* 需要连接使用的数据库名称所在索引值,从0开始,从上面的数据库名称数组中取;本项目中请遵循mysql使用不含.db后缀名称 , sqlite 使用含.db后缀名称 */
},
"dataBaseHostName":"localhost", /* mysql所在服务器ip,(sqllite不会使用)*/
"dataBasePort":3306, /* mysql连接端口,(sqllite不会使用) */
"dataBaseUserName":"root", /* mysql连接用户名,(sqllite不会使用) */
"dataBasePassWord":"root", /* mysql连接密码,(sqllite不会使用) */
"projectFirstStartLoadDefaultTableData":true /* 项目第一次启动是否加载默认数据,本项目的默认数据是学生表信息*/
}
要点就是:
1)通过QFile读出文件内容,这时候是字符串,如果有注释&