QT之Json解析与生成
1、解析Json
QFile loadFile("文件路径"); if(!loadFile.open(QIODevice::ReadOnly)) { qDebug() << "could't open projects json"; return; } QByteArray allData = loadFile.readAll(); // 读取文件所有内容 loadFile.close(); QJsonParseError jsonError; QJsonDocument jsonDoc(QJsonDocument::fromJson(allData, &jsonError)); if(jsonError.error != QJsonParseError::NoError) { qDebug() << "json error!" << jsonError.errorString(); return; } QJsonObject rootObj = jsonDoc.object(); for(int i = 0; i < JSONList.size(); i++){ //JSONList为传入的列表数据(QStringList) if(rootObj.contains(JSONList.at(i))){ QJsonValue value = rootObj.value(JSONList.at(i)); if(value.isString()){ QString valueData = value.toString(); ui->textEdit_2->append(JSONList.at(i) + ": " + valueData); } } }
2、生成Json
QJsonObject json; for(int i = 0; i < keyJson.size(); i++){ // keyJson代表key值,valueJson代表value值(QStringList) if(keyJson.at(i) == ""){ continue; } json.insert(keyJson.at(i), valueJson.at(i)); } // 构建 JSON 文档 QJsonDocument document; document.setObject(json); QByteArray byteArray = document.toJson(QJsonDocument::Compact); QString strJson(byteArray); qDebug() << strJson;