#include <QFile>
#include <QJsonDocument>
#include <QJsonParseError>
#include <QJsonObject>
//遍历以下格式的json字符串内容
//{"data":[{"name":"7~12月龄","url":"baobao1"},{"name2":"7~12月龄","url2":"baobao1"}]}
QFile file("qiaohuwang.txt");
if (!file.open(QIODevice::ReadOnly))
return;
QByteArray fileData = file.readAll();
QString fileStr = QString::fromUtf8(fileData);
QJsonParseError jsonError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(fileStr.toUtf8(), &jsonError);
if(jsonError.error == QJsonParseError::NoError)
{
QVariantMap tempMap = jsonDoc.toVariant().toMap();
QVariantList dataList = tempMap.value("data").toList();
foreach (QVariant data, dataList)
{
QVariantMap detailMap = data.toMap();
qDebug() << "name: " << detailMap.value("name").toString();
qDebug() << "url: " << detailMap.value("url").toString();
qDebug() << "text: " << detailMap.value("text").toString();
}
}
//重新组装成以下格式
//{"data":[{"name":"7~12月龄","url":"baobao1"},{"name2":"7~12月龄","url2":"baobao1"}]}
QVariantMap tempMap;
tempMap.insert("name", "7~12月龄");
tempMap.insert("url", "baobao1");
QVariantMap tempMap2;
tempMap2.insert("name2", "7~12月龄");
tempMap2.insert("url2", "baobao1");
QVariantList dataList;
dataList.append(tempMap);
dataList.append(tempMap2);
QVariantMap dataMap;
dataMap.insert("data", dataList);
QJsonDocument jsonDocument = QJsonDocument::fromVariant(dataMap);
qDebug() << jsonDocument.toJson(QJsonDocument::Compact);