QJsonObject jsonObject; QJsonObject cameraQCVoListObject; QJsonArray cameraQCVoList; QJsonArray testItemList; QJsonDocument jsonDocument; QJsonObject testSubItem; QJsonArray testSubItemList; QDir dir(exeDir + "/mesUpload"); if(!dir.exists()) { dir.mkdir(dir.path()); } cameraQCVoListObject["barcode"] = ui->barcodeLineEdit->text(); cameraQCVoListObject["supplierName"] = "丘钛"; cameraQCVoListObject["opcode"] = "NTC测试"; cameraQCVoListObject["result"] = result; cameraQCVoListObject["factoryName"] = "昆山工厂"; cameraQCVoListObject["line"] = settingWindow->configIniSettings->value("/MES/Line").toString(); cameraQCVoListObject["deviceid"] = "001"; cameraQCVoListObject["empid"] = settingWindow->configIniSettings->value("/MES/empid").toString(); cameraQCVoListObject["equipmentNumber"] = "001"; cameraQCVoListObject["testStation"] = "NTC测试"; cameraQCVoListObject["testType"] = "后段测试"; cameraQCVoListObject["lotNumber"] = settingWindow->configIniSettings->value("/MES/lotNumber").toString(); cameraQCVoListObject["programVersion"] = "20230608"; cameraQCVoListObject["partNumber"] = settingWindow->configIniSettings->value("/MES/partNumber").toString(); QString configIniString = settingWindow->configIniSettings->value("/MES/lotNumber").toString(); cameraQCVoListObject["wo"] = configIniString.mid(0, configIniString.length() - 3); cameraQCVoListObject["partspec"] = settingWindow->configIniSettings->value("/MES/partspec").toString(); cameraQCVoListObject["ip"] = getHostIpAddress(); cameraQCVoListObject["mac"] = getHostMacAddress(); testSubItemList.append(testItem(settingWindow->configIniSettings->value("/Power/" + getModelName() + "/ntcResistUpperLimit").toString(), settingWindow->configIniSettings->value("/Power/" + getModelName() + "/ntcResistLowerLimit").toString(), QString::asprintf("%f", ntc_value), "ntc_value")); testSubItem["testSubItem"] = testSubItemList; testSubItem["testItemName"] = "功耗"; testItemList.append(testSubItem); cameraQCVoListObject["testItemList"] = testItemList; cameraQCVoList.append(cameraQCVoListObject); jsonObject["dataType"] = "cameraQCVoList"; jsonObject["appKey"] = "fe903ca34c4f6ac12bdfd3bb4000cdde"; jsonObject["cameraQCVoList"] = cameraQCVoList; jsonDocument.setObject(jsonObject); QFile myfile(dir.path() + "/mesUpload.json"); myfile.open(QIODevice::WriteOnly|QIODevice::Text); myfile.write(jsonDocument.toJson()); myfile.close();
时间: 2023-07-19 08:57:44 浏览: 47
这是一段 C++ 代码,看起来是将一些测试结果以 JSON 格式保存到一个文件中。其中使用了 Qt 库中的 QJsonObject、QJsonArray、QJsonDocument 等类来操作 JSON 数据。具体来说,代码中首先创建了一个 jsonObject 对象,并向其中添加了一些键值对。其中 dataType 键的值为 cameraQCVoList,表示这是一个摄像头质量控制的测试结果。然后,将一些测试结果以 QJsonArray 的形式添加到 cameraQCVoListObject 对象中,包括 barcode、supplierName、opcode、result、factoryName、line、deviceid、empid、equipmentNumber、testStation、testType、lotNumber、programVersion、partNumber、wo、partspec、ip、mac 等键值对。接着,将一个名为 testSubItem 的 QJsonObject 对象添加到 cameraQCVoListObject 中,并向其中添加了一些键值对,包括 testSubItem 和 testItemName。最后,将 cameraQCVoListObject 添加到 cameraQCVoList 数组中,再将 jsonObject 对象中的一些键值对添加进去,并使用 QJsonDocument 类将 jsonObject 对象转换为 JSON 格式的字符串,最后将字符串写入到一个名为 mesUpload.json 的文件中。
相关问题
QJsonObject转QJsonArray
将QJsonObject转换为QJsonArray可以通过以下方式进行:
```cpp
// 假设有一个QJsonObject对象叫做jsonObject
QJsonArray jsonArray;
jsonArray.append(jsonObject);
```
这将创建一个仅包含一个元素的QJsonArray对象,该元素是刚刚创建的QJsonObject对象。如果您想将多个QJsonObject对象添加到同一个QJsonArray对象中,可以使用以下代码:
```cpp
QJsonArray jsonArray;
jsonArray.append(jsonObject1);
jsonArray.append(jsonObject2);
jsonArray.append(jsonObject3);
```
这将创建一个包含三个元素的QJsonArray对象,这三个元素是jsonObject1、jsonObject2和jsonObject3。
如何修改QJsonArray中QJsonObject的值
要修改QJsonArray中QJsonObject的值,可以按照以下步骤操作:
1. 首先,通过下标或迭代器获取需要修改的QJsonObject。
2. 使用QJsonObject的insert、remove或replace函数修改QJsonObject的值。
3. 将修改后的QJsonObject重新插入到QJsonArray中,可以使用replace函数或insert函数。
下面是一个示例代码,演示如何修改QJsonArray中QJsonObject的值:
```c++
QJsonArray jsonArray;
QJsonObject jsonObject;
jsonObject.insert("name", "John");
jsonObject.insert("age", 30);
jsonArray.append(jsonObject);
// 修改QJsonObject的值
QJsonObject& objRef = jsonArray[0].toObject();
objRef["name"] = "Mike";
objRef["age"] = 35;
// 将修改后的QJsonObject重新插入到QJsonArray中
jsonArray.replace(0, objRef);
```
在上面的代码中,我们首先创建了一个QJsonArray和一个QJsonObject,并将QJsonObject插入到QJsonArray中。然后,通过引用获取需要修改的QJsonObject,并使用insert函数修改QJsonObject的值。最后,使用replace函数将修改后的QJsonObject重新插入到QJsonArray中。