通过Json实现QT界面UI与后端功能的分离,方便代码管理与版本迭代。
首先创建了三个类,ujson、testmenu和uintmenu。
ujson.h
#ifndef UJSON_H
#define UJSON_H
#include <QJsonArray>
#include <QJsonObject>
class uJson
{
public:
uJson();
static QJsonObject f_toObject(const QString & pData);
static QJsonObject f_toObject(const QByteArray & pData);
static QJsonArray f_toArray(const QString & pData);
static QJsonArray f_toArray(const QByteArray & pData);
static QString f_fromObject(const QJsonObject &pO);
static QString f_fromArray(const QJsonArray &pArray);
};
#endif // UJSON_H
ujson.cpp
#include "ujson.h"
#include <QJsonDocument>
uJson::uJson()
{
}
QJsonObject uJson::f_toObject(const QString &pData)
{
QJsonDocument doc = QJsonDocument::fromJson(pData.toUtf8());
return doc.object();
}
QJsonObject uJson::f_toObject(const QByteArray &pData)
{
QJsonDocument doc = QJsonDocument::fromJson(pData);
return doc.object();
}
QJsonArray uJson::f_toArray(const QString &pData)
{
QJsonDocument doc = QJsonDocument::fromJson(pData.toUtf8());
return doc.array();
}
QJsonArray uJson::f_toArray(const QByteArray &pData)
{
QJsonDocument doc =QJsonDocument::fromJson(pData);
return doc.array();
}
QString uJson::f_fromObject(const QJsonObject &pO)
{
QJsonDocument doc;
doc.setObject(pO);
QString objStr = doc.toJson(QJsonDocument: