记录一下
#include <QDebug>
#include <QFile>
#include <QApplication>
#include <QJsonDocument>
void writeFile(QString path, QVariant data)
{
QFile file(path);
if(file.open(QIODevice::WriteOnly|QIODevice::Text))
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
QString jsonStr = QJsonDocument::fromVariant(data).toJson();
stream<<jsonStr;
file.close();
}
}
QVariantMap readFile(QString path)
{
QVariantMap varmap;
QFile file(path);
if(file.open(QIODevice::ReadOnly|QIODevice::Text))
{
QTextStream stream(&file);
stream.setCodec("UTF-8");
QString jsonStr = stream.readAll();
file.close();
QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(jsonStr.toUtf8(),&error);
if(error.error != QJsonParseError::NoError)
{
qDebug()<<error.errorString();
}
varmap = doc.toVariant().toMap();
}
return varmap;
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QVariantMap varmap;
for(int i=0; i<5 ; i++){
QVariantMap childMap;
for(int j=0; j<5; j++){
QVariantList varlist;
for(int k=0; k<5; k++){
varlist.append(QString("第三层-%1").arg(k+1));
}
childMap.insert(QString("第二层-%1").arg(j+1),QVariant(varlist));
}
varmap.insert(QString("第一层%1").arg(i+1),QVariant(childMap));
}
QString path = QApplication::applicationDirPath()+"/test.json";
writeFile(path,varmap);
QVariantMap dataMap = readFile(path);
qDebug()<<dataMap;
return a.exec();
}