使用QJsonArray写文件:
QString fileName = ":load.json";
QFile srcFile(fileName);
if(!srcFile.open(QFile::ReadWrite)){
return;
}
QJsonArray json;
//添加方式一:
json.append("zhangSan");
json.append(2018);
json.append(true);
/
//添加方式er:
// json.insert(0,"zhangSan");
// json.insert(1, 2018);
// json.insert(2,true);
QJsonDocument document;
document.setArray(json);
QByteArray byteArray = document.toJson(QJsonDocument::Compact);
QString strJson(byteArray);
QTextStream in(&srcFile);
in<<strJson;
使用QJsonArray解析文件:
QString fileName = ":load.json";
QFile srcFile(fileName);
if(!srcFile.open(QFile::ReadWrite)){
return;
}
//解析方式一:
// QJsonArray jsonAry = QJsonDocument::fromJson(QString(srcFile.readAll()).toUtf8()).array();
// for(int i = 0; i< jsonAry.count(); i++)
// {
// QJsonValue value = jsonAry.at(i);
// if(value.isString())
// {
// QString s = value.toString();
// qDebug()<<"Array ------ 1"<<s;
// }
// if(value.toInt())
// {
// int t = value.toInt();
// qDebug()<<"Array ------ 2"<<t;
// }
// if(value.isBool())
// {
// bool b = value.toBool();
// qDebug()<<"Array ------ 3"<<b;
// }
// }
//解析方式二:
QJsonParseError error;
QJsonDocument doucment = QJsonDocument::fromJson(srcFile.readAll(), &error);
if (!doucment.isNull() && (error.error == QJsonParseError::NoError)) { //解析否出现错误
if (doucment.isArray()) { // 数组判断
QJsonArray array = doucment.array(); // 转数组
for (int i = 0; i < array.count(); i++)
{
QJsonValue value = array.at(i);
if (value.type() == QJsonValue::String)
{
QString s = value.toString();
qDebug() <<"name:"<< s;
}
if (value.type() == QJsonValue::Double) {
int t = value.toInt();
qDebug() <<"time:"<<t;
}
if (value.type() == QJsonValue::Bool) {
bool b = value.toBool();
qDebug()<<"qing:" << b;
}
}
}
}
使用QJsonObject生成文件:
QString fileName = ":load.json";
QFile srcFile(fileName);
if(!srcFile.open(QFile::ReadWrite)){
return;
}
QJsonObject json;
json.insert("Name", "zhangSan");
json.insert("Time", 2018);
json.insert("Qing", true);
QJsonDocument document;
document.setObject(json);
QByteArray byteArray = document.toJson(QJsonDocument::Compact);
QString str(byteArray);
QTextStream in(&srcFile);
in<<str;
使用使用QJsonObject解析文件:
QString fileName = ":load.json";
QFile srcFile(fileName);
if(!srcFile.open(QFile::ReadWrite)){
return;
}
//解析方法一:
// QJsonParseError error;
// QJsonDocument doucment = QJsonDocument::fromJson(srcFile.readAll(), &error);
// srcFile.close();
// QJsonObject obj = doucment.object();
// QString name = obj.take("Name").toString();
// qDebug()<<"Name: " << name;
// int time = obj.take("Time").toInt();
// qDebug()<<"Time: "<<time ;
// bool qing = obj.take("Qing").toBool();
// qDebug()<<"Qing: "<<qing ;
//解析方法二:
QJsonObject jsonObj = QJsonDocument::fromJson(QString(srcFile.readAll()).toUtf8()).object();
srcFile.close();
qDebug()<<"Object Name: " << jsonObj.value("Name").toString();
qDebug()<<"Object Time: " << jsonObj.value("Time").toInt();
qDebug()<<"Object Qing: " << jsonObj.value("Qing").toBool();
熟悉这两种用法,基本稍微复杂一点的都可以生成或者解析
下载地址:https://download.csdn.net/download/u010304326/10394477