添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
{"Name":"小明","age":18}

Qt json解析对象 代码
```c++
void MainWindow::parseObject()
{
QString str = "{\"Name\":\"小明\",\"Age\":18}";
QJsonDocument jdoc = QJsonDocument::fromJson(str.toUtf8());
QJsonObject jobject = jdoc.object();
QJsonValue jvalue_name = jobject.value("Name");
qInfo() << jvalue_name.toString();
QJsonValue jvalue_age = jobject.value("Age");
qInfo() << jvalue_age.toInt();

///////// 遍历 /////////////
foreach (auto item, jobject.keys()) {
    qInfo() << "key:" << item;
    QJsonValue jvalue = jobject.value(item);
    qInfo() << "value:" << jvalue.toVariant();
```shell
key: "Age"
value: QVariant(double, 18)
key: "Name"
value: QVariant(QString, "小明")
["apple","orange","banana","watermelon"]

Qt json解析数组代码
```c++
void MainWindow::parseArray()
{
QString str = "[\"apple\",\"orange\",\"banana\",\"watermelon\"]";
QJsonDocument jdoc = QJsonDocument::fromJson(str.toUtf8());
QJsonArray jArray = jdoc.array();
// item 为QJsonValue类型
foreach (auto item, jArray) {
qInfo() << item.toString();
}
}

```shell "apple" "orange" "banana" "watermelon"

数组对象混合解析

{"Lists":["apple","orange"]}

Qt json解析代码
```c++
void MainWindow::parseObjectArray()
{
QString str = "{\"Lists\":[\"apple\",\"orange\"]}";
QJsonDocument jdoc = QJsonDocument::fromJson(str.toUtf8());
QJsonObject jObject = jdoc.object();
QJsonValue jLists = jObject.value("Lists");
QJsonArray jArray = jLists.toArray();
// item 为QJsonValue类型
foreach (auto item, jArray) {
qInfo() << "value:" << item.toString();
}
}

```shell value: "apple" value: "orange"

对象数组混合解析

[{"Name":"小明","age":18},{"Name":"小王","age":20}]

Qt 解析json代码
```c++
void MainWindow::parseArrayObject()
{
QString str =
"[{\"Name\":\"小明\",\"age\":18},{\"Name\":\"小王\",\"age\":20}]";
QJsonDocument jdoc = QJsonDocument::fromJson(str.toUtf8());
QJsonArray jLists = jdoc.array();
foreach (auto item, jLists) {
QJsonObject item_object = item.toObject();
qInfo() << "===============================";
qInfo() << "name:" << item_object.value("Name").toString();
qInfo() << "age:" << item_object.value("age").toDouble();
}
}

```shell =============================== name: "小明" age: 18 =============================== name: "小王" age: 20

公众号:【qt小王子】
qrcode_for_gh_29b5efb20dc0_258.jpg