在项目中用到的json数据格式转换,分享给大家
头文件:
#ifndef JSONUTIL_H
#define JSONUTIL_H
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
class JsonUtil
{
public:
JsonUtil();
static QByteArray jsonObjToByte(const QJsonObject& obj);
static QString jsonObjToStr(const QJsonObject& obj);
static QString jsonArrToStr(const QJsonArray& arr);
static QByteArray jsonArrToByte(const QJsonArray& arr);
static QJsonObject jsonStrToObj(const QString& str);
static QJsonArray jsonStrToArr(const QString& str);
};
#endif // JSONUTIL_H
cpp文件:
#include "jsonutil.h"
JsonUtil::JsonUtil()
{
}
QByteArray JsonUtil::jsonObjToByte(const QJsonObject &obj)
{
QJsonDocument document;
document.setObject(obj);
return document.toJson(QJsonDocument::Compact);
}
QString JsonUtil::jsonObjToStr(const QJsonObject &obj)
{
return QString::fromUtf8(jsonObjToByte(obj));
}
QString JsonUtil::jsonArrToStr(const QJsonArray &arr)
{
return QString::fromUtf8(jsonArrToByte(arr));
}
QByteArray JsonUtil::jsonArrToByte(const QJsonArray &arr)
{
QJsonDocument document;
document.setArray(arr);
const QByteArray& ba = document.toJson(QJsonDocument::Compact);
return ba;
}
QJsonObject JsonUtil::jsonStrToObj(const QString &str)
{
const QJsonDocument& doc = QJsonDocument::fromJson(str.toUtf8());
return doc.object();
}
QJsonArray JsonUtil::jsonStrToArr(const QString &str)
{
const QJsonDocument& doc = QJsonDocument::fromJson(str.toUtf8());
return doc.array();
}