Qt读写Json

一、读取Json

{
	"key":"value"
}
#include <QFile>
#include <QDebug>
#include <QByteArray>
#include <QJsonDocument>
#include <QJsonObject>

QFile file("testJson.json");
file.open(QIODevice::ReadOnly);
QByteArray json = file.readAll();
file.close();

QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(json, &error);

QJsonObject obj = doc.object();
qDebug()<<obj.value("key").toString();

如果有多层,则将第一次得到的QJsonValue转成QJsonObject,继续取值

{
	"title":{
		"key":"value"
	}
}
QJsonObject obj = doc.object();
QJsonObject obj2 = obj.value("title").toObject();
qDebug()<<obj2.value("key").toString();

二、写入Json

#include <QFile>
#include <QJsonDocument>

QMap<QString, QVariant> json;
json.insert("usr", "qwer");
json.insert("pwd", "123");

QJsonDocument doc = QJsonDocument::fromVariant(json);

QFile file("testJson.json");
file.open(QIODevice::WriteOnly);
file.write(doc.toJson());//转换成QByteArray
file.close();
{
    "pwd": "123",
    "usr": "qwer"
}

同样的,如果是多层的,则要让QMapQVariant为另一个QMap

QMap<QString, QVariant> json;
json.insert("usr", "qwer");
json.insert("pwd", "123");

QMap<QString, QVariant> title;
title.insert("json",json);

QJsonDocument doc = QJsonDocument::fromVariant(title);

QFile file("testJson.json");
file.open(QIODevice::WriteOnly);
file.write(doc.toJson());
file.close();
{
    "json": {
        "pwd": "123",
        "usr": "qwer"
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值