Как я получу конкретное значение ключа в этой строке вывода ниже в Qt?

#json #qt

#json #qt

Вопрос:

вот мой код.

 QJsonObject distance = QJsonDocument::fromJson(databuffer).object(); qDebug()lt;lt;distance["feeds"];  

теперь мой вывод таков:

 QJsonValue(array, QJsonArray([{"created_at":"2021-12-06T06:11:23Z","entry_id":21,"field1":"202"}]))  

мне нужно только значение определенного значения ключа «field1». как я могу его получить ? пожалуйста, помогите.

Ответ №1:

Воспользуйся distance.value("feeds").toArray().at(0).toObject().value("field1") .

Конечно, вам следует добавить некоторую обработку ошибок в случае, если данные находятся не в той форме, как ожидалось. Но вы, вероятно, захотите сделать его более общим в зависимости от вашего варианта использования…

И небольшое пояснение: QJsonValue является держателем общего значения и перед фактическим использованием его следует преобразовать в фактическое значение ( int double , QString , bool и т.д.) Или в контейнер QJsonArray , который можно прочитать с помощью индекса позиции , или объект QJsonObject , который можно прочитать по именам полей.