【QT-8】Qt Json格式总结

一、创建json对象

类型一:

QJsonObject interestObj;
// 插入元素,对应键值对
interestObj.insert("Length", "797");
interestObj.insert("Width", "797");
interestObj.insert("Height", "797");
interestObj.insert("ExternalVolume", "1898484");
interestObj.insert("IntegralVolume", "5792330");

输出:

{
	"ExternalVolume": "1898484",
	"Height": "797",
	"IntegralVolume": "5792330",
	"Length": "797",
	"Width": "797"
}

类型二:

QJsonArray plot_array;
QJsonObject result_obj;

// 定义 { } 对象
QJsonObject interestObj;
// 插入元素,对应键值对
interestObj.insert("Length", "797");
interestObj.insert("Width", "797");
interestObj.insert("Height", "797");
interestObj.insert("ExternalVolume", "1898484");
interestObj.insert("IntegralVolume", "5792330");

plot_array.append(interestObj);
result_obj.insert("message", "成功");
result_obj.insert("status", 0);
result_obj.insert("data", plot_array);

输出:

{
	"data": [{
		"ExternalVolume": "1898484",
		"Height": "797",
		"IntegralVolume": "5792330",
		"Length": "797",
		"Width": "797"
	}],
	"message": "成功",
	"status": 0
}

二、QJsonObject转换成QByteArray

QJsonDocument document = QJsonDocument(result_obj);
// 转换成QByteArray
QByteArray array = document.toJson();

三、QByteArray转换成QJsonObject

QJsonObject object;
QJsonDocument doc = QJsonDocument::fromJson(QByteArray_data);
QJsonObject obj = doc.object();
//start_id为key值
QJsonValue start_value = obj.value("start_id");

四、JSON数据读取

JSON数据格式:

{
	"type": "create_project",
	" ProjectName": "Pro8",
	"ProNotes": "north",
	"site": 
	[{
		"site_name": "zhandain5",
		"silo": [
		{
		"silo_name": "liaocang1",
		"sensor":
				[{
					"sersor_id": "first"
				}]
				
		},
		{
		"silo_name": "liaocang2",
		"sensor":
				[{
					"sersor_id": "first"
				}]
				
		}]
	},
	{
		"site_name": "zhandain6",
		"silo": [
		{
		"silo_name": "liaocang1",
		"sensor":
				[{
					"sersor_id": "first"
				}]
				
		},
		{
		"silo_name": "liaocang2",
		"sensor":
				[{
					"sersor_id": "first"
				}]
				
		}]
	}
	]
}

示例代码:

QJsonValue site_name, data_name;
QJsonObject getJsonMsg;

...
//上述省略将读取的string数据转换为json格式

QJsonArray site_data = getJsonMsg.value("site").toArray();

int site_size = site_data.size();
for (int i = 0; i < site_size; i++)
{
	QJsonObject silo = site_data.at(i).toObject();
	site_name = silo.value("site_name");

	QJsonArray silo_data = silo.value("silo").toArray();

	int silo_size = silo_data.size();
	for (int j = 0; j < silo_size; j++)
	{
		QJsonObject sensor = silo_data.at(j).toObject();
		data_name = sensor.value("silo_name");
	}
}

参考链接 QT中Json对象,字符串 QString,字符数组 QByteArray之间的转换_读不懂的标题的博客-CSDN博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值