Перебрать массив QJsonArray

Никак не могу понять, каким образом можно вытащить значения из этого массива? Пробовал по разному, ничего не выходит.

Массив вида [11111111111111,22222222222222,33333333333333]

QJsonArray data = jb.value("test").toArray();

qDebug() << data; // в массиве 3 элемента
//вывод: QJsonValue(array, QJsonArray([11111111111111,22222222222222,33333333333333]))

//пробую так, вывод пустой. 
for(const QJsonValue& v: data)
{
    qDebug() << v.toString();
}

//""
//""
//""

Ответы (2 шт):

Автор решения: Александр
QString jsonRaw = "[1111, 2222, 3333]";

QVariantList jsonList = QJsonDocument::fromJson(jsonRaw.toUtf8()).toVariant().toList();

for(auto &it : jsonList)
{
    qDebug() << it;
}

Вывод:

QVariant(double, 1111)
QVariant(double, 2222)
QVariant(double, 3333)
→ Ссылка
Автор решения: Sergey Tatarincev

Полностью "до кучи" перебор элементов и подэлементов. Надеюсь доступно.

json

[
 {"Id": 0,
  "Text": "element1",
  "SubItems": ["subelement1.1","subelement1.2"]
 },
 {"Id": 1,
  "Text": "element2",
  "SubItems": ["subelement2.1","subelement2.2"] 
 }
]

код:

QByteArray myjson="[{\"Id\": 0, \"Text\": \"element1\", \"SubItems\": [\"subelement1.1\",\"subelement1.2\"] },    {\"Id\": 1,     \"Text\": \"element2\",     \"SubItems\": [\"subelement2.1\",\"subelement2.2\"] }   ]";
QJsonParseError err;
QJsonDocument document = QJsonDocument::fromJson(myjson,&err);
if(err.error!=QJsonParseError::NoError){
    qDebug()<<"error: "<<err.errorString();
    return 0;
}
QJsonArray array = document.array();
foreach(QJsonValue val,array){
    QJsonObject obj = val.toObject();
    qDebug()<< obj.value("Id").toInt()<<": "<<obj.value("Text").toString();
    QJsonArray array = obj.value("SubItems").toArray();
    foreach(QJsonValue arrval,array){
        qDebug()<<"   "<<arrval.toString();
    }
}
→ Ссылка