Member 13740197 Ответов: 1

Как разобрать вложенную строку json в QT C++


Привет, Вы можете объяснить, как разобрать вложенный файл ответов json в qt4.7 (C++). И файл находится в пути "/home/kkk/response.json".Файл содержит следующий ответ.Я использую Qt в среде Linux.


{ " respcode ":" 200 "," respdesc ":"success"," count ":"3",
"nodalofficers​ ":[
{" attid ":"XXX"," attname ":"XXX"},
{" attid ":"XXX"," attname ":"XXX"},
{" attid ":"XXX"," attname ":"XXX"}]
}

Что я уже пробовал:

Я попробовал ниже код, но здесь я не знаю, как объявить Jsondocument(document), поэтому получаю ошибки.

QStringList countlist = document.elementsByTagName("nodalofficers");
если(countlist.отсутствуют())
{
DisplayWideMsgBox("получен неверный ответ \nPlease попробуйте еще раз");
возврат -1;
}

инт значении itemcount = countlist.в(0).childNodes().граф();
qDebug()&ЛТ;&ЛТ;"счетчик :"&ЛТ;&ЛТ;значении itemcount;


list = document.elementsByTagName("nodalofficers");
если(список.отсутствуют())
{
DisplayWideMsgBox("пустые данные, полученные для списка доменов");
возврат -1;
}

for(int i = 0,j = 0;i < itemCount;i++,j = 0)
{
QString attid =
список.в(я).childNodes().в(Дж).toElement().текст();
QString attname =
список.в(я).childNodes().на(К+1).toElement().текст();
}

1 Ответов

Рейтинг:
12

Jochen Arndt

Поддержка JSON была нарушена с помощью Qt5 (Поддержка JSON в Qt | Qt Core 5.11[^]).

Если вы застряли на довольно старой (2010 - 2012) и больше не поддерживаемой (с 2015 года) версии 4.7, я предлагаю использовать библиотеку C++ JSON вместо того, чтобы пытаться сделать это самостоятельно. Есть даже один для Qt: GitHub - flavio/qjson: QJson-это библиотека на основе qt, которая сопоставляет данные JSON с объектами QVariant.[^].