JSON数组是一个有序列表,它写成:
[ <item1>, <item2>, <item3> ]
而 JSON 对象是一个命名列表,写为:
{
<name1>: <item1>,
<name2>: <item2>
}
在 Qt 中,aQJsonArray
等价于QVariantList
( QList<QVariant>
),aQJsonObject
等价于QVariantMap
( QMap<QString, QVariant>
)。
您必须使用哪一个取决于您正在解析的文件。例如,以维基百科为例:
{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
},
{
"type": "mobile",
"number": "123 456-7890"
}
],
"children": [],
"spouse": null
}
您将使用 aQJsonArray
来获取 的列表phoneNumbers
,其中的每个元素phoneNumbers
都是一个带有QJsonObject
2 个命名值:type
和number
.
如果在您的代码中您需要操作 JSON 元素但您不知道可以使用它的类型,QJsonValue
它是以下之一:QJsonObject
、QJsonArray
、或bool
double
QString