{
"serialNum": "123456",
"hardVersion": "654321",
"protocol": [{
"protocol": "modbus1"
}, {
"protocol": "modbus2"
}, {
"protocol": "modbus3"
}]
}
我们对以上json数据进行解析——
QJsonParseError err;
QJsonDocument doc = QJsonDocument::fromJson(json, &err);
if(err.error != QJsonParseError::NoError)
{
QMessageBox::warning(this, "错误", "json数据有误");
return;
}
//获取json对象
QJsonObject obj = doc.object();
if (obj.contains("serialNum"))
{
QJsonValue serialValue = obj.take("serialNum");
if (serialValue.isString())
{
serialNum = serialValue.toString();
qDebug() << "serialNum " << serialNum;
}
}
if(obj.contains("hardVersion"))
{
QJsonValue hardValue = obj.take("hardVersion");
if (hardValue.isString())
{
hardVersion = hardValue.toString();
qDebug() << "hardVersion " << hardVersion;
}
}
if(obj.contains("protocol"))
{
QJsonValue value = obj.value("protocol");
if (value.isArray())
{
QJsonArray array = value.toArray();
for (int i = 0; i < array.size(); ++i)
{
qDebug() << array.at(i).toObject().value("protocol").toString();
}
}
}
{
"display": {
"deviceList": [{
"hostID": 2000,
"name": "laoma"
}, {
"hostID": 1000,
"name": "Nicholas"
}]
},
"version": "1.0"
}
合成以上json数据:
QJsonObject json;
QJsonObject listObject;
QJsonObject displayObject;
QJsonArray array;
QJsonObject deviceObject;
QJsonObject deviceObject1;
deviceObject.insert("name", "Nicholas");
deviceObject.insert("hostID", 1000);
deviceObject1.insert("name", "laoma");
deviceObject1.insert("hostID", 2000);
array.insert(0, QJsonValue(deviceObject));
array.insert(1, QJsonValue(deviceObject1));
listObject.insert("deviceList", QJsonValue(array));
json.insert("display", QJsonValue(listObject));
json.insert("version", "1.0");
QJsonDocument document;
document.setObject(json);
QByteArray byteArray =document.toJson(QJsonDocument::Compact);