JSON 配列は順序付けられたリストであり、次のように記述されます。
[ <item1>, <item2>, <item3> ]
一方、JSON オブジェクトは名前付きリストであり、次のように記述されます。
{
<name1>: <item1>,
<name2>: <item2>
}
Qt では、 aQJsonArray
は ( ) に相当し、aはQVariantList
( )に相当します。QList<QVariant>
QJsonObject
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
}
QJsonArray
のリストを取得するには、 を使用します。 のphoneNumbers
各要素phoneNumbers
は、QJsonObject
2 つの名前付き値:type
およびnumber
です。
コード内で JSON 要素を操作する必要があるが、その型がわからない場合は、次のいずれかを使用できますQJsonValue
: QJsonObject
、QJsonArray
、bool
、double
またはQString