QJSON类的一些api函数

QJsonDocument::fromJson

static QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)

const QByteArray &json:要解析的JSON数据,以字节数组的形式传入。
QJsonParseError *error = nullptr:(可选参数)用于存储解析错误信息的指针,如果解析成功,则为nullptr。返回值:
QJsonDocument:解析后得到的JSON文档对象。
作用:
QJsonDocument::fromJson()函数用于将传入的JSON数据解析为一个QJsonDocument对象,以便后续对JSON数据进行读取、修改或生成等操作。
使用示例:

QByteArray jsonData = "{\"name\": \"John\", \"age\": 30}";
QJsonParseError jsonError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &jsonError);
if(jsonError.error != QJsonParseError::NoError) {
// 解析出错
	qDebug() << "JSON解析错误:" << jsonError.errorString();
} else {
	QJsonObject jsonObj = jsonDoc.object();
	QString name = jsonObj["name"].toString();
	int age = jsonObj["age"].toInt();
	qDebug() << "Name: " << name;
	qDebug() << "Age: " << age;
}

QJsonValue::toObject()

QJsonObject QJsonValue::toObject() const

QJsonValue::toObject() const函数是QJsonValue类的成员函数,它的参数为空
返回值是QJsonObject类型。
作用:
QJsonValue::toObject()函数用于将当前的QJsonValue对象转换为QJsonObject对象。
当前的QJsonValue对象必须是一个JSON对象类型,否则转换会失败。

QString jsonString = "{\"name\": \"John\", \"age\": 30}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
if(jsonDoc.isObject()) {
	QJsonObject jsonObj = jsonDoc.object();
	QString name = jsonObj["name"].toString();
	int age = jsonObj["age"].toInt();
	qDebug() << "Name: " << name;
	qDebug() << "Age: " << age;
}

QJsonObject::contains(const QString &key)

bool QJsonObject::contains(const QString &key) const

函数的参数是一个const QString &类型的key,表示要检查的键名。
返回值是一个bool类型,表示该QJsonObject是否包含指定的键名。
作用:
QJsonObject::contains()函数用于检查QJsonObject是否包含指定的键名。

QString jsonString = "{\"name\": \"John\", \"age\": 30}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
if(jsonDoc.isObject()) {
	QJsonObject jsonObj = jsonDoc.object();
	if(jsonObj.contains("name")) {
		QString name = jsonObj["name"].toString();
		qDebug() << "Name: " << name;
}
}

QJsonObject::value

QJsonObject::value(const QString &key) const

参数是一个const QString &类型的key,表示要获取的键名。返回值是一个QJsonValue类型,表示该键对应的值
作用:
QJsonObject::value()函数用于获取指定键名对应的值。
通过传入一个键名,可以获取当前QJsonObject中该键对应的值,并将其封装为QJsonValue类型返回。返回的QJsonValue对象可以根据需要进行类型转换,例如使用toBool()、toInt()、toString()等函数获取具体的值。

QString jsonString = "{\"name\": \"John\", \"age\": 30}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
if(jsonDoc.isObject()) {
	QJsonObject jsonObj = jsonDoc.object();
	QJsonValue nameValue = jsonObj.value("name");
if(nameValue.isString()) {
	QString name = nameValue.toString();
	qDebug() << "Name: " << name;
}
}
```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hgchshs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值