1、Qt的Json的介绍
#include <QJsonDocument> //json文件
#include <QJsonObject> //json对象
#include <QJsonArray> //QJsonObject数组
1>、Qt中Json的组装结构
/*
QJsonDocument //整个双引号里面的
"
//大括号里面是QJsonObject
{
"key":value
//也可包含数组
[
//数组里又是一个一个的对象
{},{}
]
}
"
*/
/*
//QJsonArray
[
//每个都是QJsonObject
{},
{},
{},
]
*/
2>、由此可得
a、QJsonObject负责组装节点,QJsonDocument负责整个文档的读写和加载。
b、综上一个QJsonDocument可以由一个QJonObject构成,也可以由一个QJsonObject数组构成。
2、组装Json数据,以及用MD5加密密码
#include <QCryptographicHash> //使用哈希加密的头文件
QByteArray md5 = QCryptographicHash::hash("123456",
QCryptographicHash::Md5); //第二个参数表示用什么加密方式
//MD5是一个16字节的数组,数据库里保存的也是MD5
//客户端给服务器传过来一个MD5时只需要比较是否与服务器里的MD5是否一样就可以判断
QJsonObject obj;
obj.insert("username", QString("root"));
obj.insert("password", QString(md5.toHex()));//toHex会把16字节转化为32字节
obj.insert("male", true);
obj.insert("age", 22);
QJsonDocument doc(obj);
QByteArray json = doc.toJson(); //其内部参数表示采用什么格式来表现
//默认为Indented, 紧凑为Compact
qDebug() << QString(json).toStdString().data(); //打印组装好的数据
3、对收到的Json数据进行解析
//解析json
//QJsonDocument doc2 = QJsonDocument::fromJson(json);
//QJsonObject obj2 = doc2.object();
QJsonObject obj2 = QJsonDocument::fromJson(json).object();
if(obj2.value("username").toString() == "root")
{
qDebug() << "yes";
}