json内容,包含对象、数组、值
对象包含不同种类值
数组包含同一种类值多个
{
"info": [
{
"default": "",
"name": "游戏",
"age": 18,
"language":{
"china":"chinese",
"american":"english"
},
"value":
[
11,
22,
33
]
},
{
"second":"test"
}
]
}
QFile file("hello.json");
if (!file.exists()||!file.open(QIODevice::ReadOnly))
{
return 0;
}
QByteArray temp_json = file.readAll();
file.close();
QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(temp_json, &error);
QByteArray array = doc.toJson();
if (QJsonParseError::NoError != error.error)
{
qDebug() << "sourcefilejson error!";
return 0;
}
if (!doc.isObject())
{
qDebug() << "error";
return 0;
}
QJsonObject obj = doc.object();
QJsonValue info = obj.value("info");
QJsonValue cas = obj.value("cas");
if (info.isArray())
{
QJsonArray info_array = info.toArray();
int size = info_array.size();
for (int i = 0; i < size; i++)
{
QJsonObject obj_info = info_array[i].toObject();
QString default = obj_info.value("default").toString();
QString name = obj_info.value("name").toString();
int age = obj_info.value("age").toInt();
QJsonValue language = obj_info.value("language");
QString ChinaLanguag = language.toObject().value("china").toString();
QString AmericanLanguag = language.toObject().value("american").toString();
QJsonArray value_array = obj_info.value("value").toArray();
for (int j = 0;j<value_array.size();j++)
{
int num = value_array[j].toInt();
}
}
}
1.对象转QByteArray
QByteArray array = QJsonDocument(body_obj).toJson();
2.数组转QByteArray
QByteArray array = QJsonDocument(body_obj).toJson();
3.QByteArray转json
QJsonDocument doc = QJsonDocument::fromJson(array);
QJsonObject obj = doc.object();
QJsonArray array = doc.array();
4.QJsonValue转常用QString int
QJsonObject obj;
QString value = obj.value("obj").toString();
int age = obj.value("age").toInt();