下面是一个简单的Qt下封装JSON格式文本的类,包括对象、列表等元素:
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
class JsonHelper {
public:
// 创建空对象
static QJsonObject createObject() {
return QJsonObject();
}
// 添加键值对到对象中
static void addObjectValue(QJsonObject& obj, const QString& key, const QJsonValue& value) {
obj.insert(key, value);
}
// 创建空数组
static QJsonArray createArray() {
return QJsonArray();
}
// 添加元素到数组中
static void addArrayElement(QJsonArray& arr, const QJsonValue& value) {
arr.append(value);
}
};
使用示例:
// 创建一个对象并添加键值对
QJsonObject obj = JsonHelper::createObject();
JsonHelper::addObjectValue(obj, "name", "Tom");
JsonHelper::addObjectValue(obj, "age", 20);
// 创建一个数组并添加元素
QJsonArray arr = JsonHelper::createArray();
arr.append(1);
arr.append("hello");
// 将对象和数组组合成一个新的对象,并序列化为JSON字符串
QJsonObject root;
JsonHelper::addObjectValue(root, "person", obj);
JsonHelper::addObjectValue(root, "list", arr);
QString jsonStr = QString(QJsonDocument(root).toJson());
qDebug() << jsonStr; // 输出: {"person":{"name":"Tom","age":20},"list":[1,"hello"]}
注意:以上代码仅作参考,实际应用中还需要进行错误处理、类型检查等操作。