QT解析QJsonObject和QJsonArray以及和QByteArray之间的相互转换
在pro中添加 QT += script
解析QJsonObject
#include <QCoreApplication>
#include <QtScript>
// JSON格式的前缀
#define J_ID "id"
#define J_NICK "nick"
#define J_ZHUANYE "zhuanye"
#define J_AGE "age"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 构造QJSonObject
QJsonObject json_object;
json_object.insert(J_ID, "1263");
json_object.insert(J_NICK, "lin");
json_object.insert(J_AGE, 20);
json_object.insert(J_ZHUANYE, "ruanjiangc");
// 转换成QByteArray
QByteArray byte_array = QJsonDocument(json_object).toJson();
// 这时候发送byte_array
// 另外一端对byte_array进行解析
// QByteArray转换成QJsonObject
QJsonObject json_object2 = QJsonDocument::fromJson(byte_array).object();
qDebug() << json_object2.value(J_ID).toString();
qDebug() << json_object2.value(J_NICK).toString();
qDebug() << json_object2.value(J_AGE).toInt();
qDebug() << json_object2.value(J_ZHUANYE).toString();
return a.exec();
}
#include <QCoreApplication>
#include <QtScript>
// JSON格式的前缀
#define J_ID "id"
#define J_NICK "nick"
#define J_ZHUANYE "zhuanye"
#define J_AGE "age"
enum {
TAG_LOGIN,
TAG_LOGIN_OK,
TAG_LOGIN_FAIL,
TAG_REGISTER,
TAG_REGISTER_OK,
TAG_REGISTER_FAIL,
TAG_FIND_BACK
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 构造QJsonObject(从数据库中读取的时候是在循环里面构造)
QJsonObject json_object;
json_object.insert(J_ID, "1263");
json_object.insert(J_NICK, "lin");
json_object.insert(J_AGE, 20);
json_object.insert(J_ZHUANYE, "ruanjiangc");
QJsonObject json_object2;
json_object2.insert(J_ID, "2345");
json_object2.insert(J_NICK, "jin");
json_object2.insert(J_AGE, 5);
json_object2.insert(J_ZHUANYE, "ruanjiangc");
QJsonObject json_object3;
json_object3.insert(J_ID, "9999");
json_object3.insert(J_NICK, "qiu");
json_object3.insert(J_AGE, 21);
json_object3.insert(J_ZHUANYE, "ruanjiangc");
QJsonObject json_object4;
json_object4.insert(J_ID, "6666");
json_object4.insert(J_NICK, "zhao");
json_object4.insert(J_AGE, 19);
json_object4.insert(J_ZHUANYE, "ruanjiangc");
// 构造QJsonArray
QJsonArray json_array;
json_array.insert(0, TAG_LOGIN);
json_array.insert(1, json_object);
json_array.insert(2, json_object2);
json_array.insert(3, json_object3);
json_array.insert(4, json_object4);
// 转换成QByteArray
QByteArray byte_array = QJsonDocument(json_array).toJson();
// 这时候发送byte_array
// 另外一端对byte_array进行解析
// QByteArray转换成QJsonArray
QJsonArray json_array2 = QJsonDocument::fromJson(byte_array).array();
int tag = json_array2.at(0).toInt();
qDebug() << "tag:" << tag;
for(int i = 1; i < json_array2.size(); ++i) {
QJsonObject json = json_array2.at(i).toObject();
qDebug() << json.value(J_ID).toString();
qDebug() << json.value(J_NICK).toString();
qDebug() << json.value(J_AGE).toInt();
qDebug() << json.value(J_ZHUANYE).toString();
}
return a.exec();
}
还没有评论,来说两句吧...