BlinCT24 марта 2021 г. 3:26
Создание QJson и возможная сортировка результата
Всем привет.
Сталкнулся со странной сортировкой(а может или нет) при создании документа json если я использую JsonObjevt. Ниже пример
QJsonObject identify; QJsonObject values; QJsonObject device; QJsonArray intoDev; identify.insert("type", "vhd5preset"); identify.insert("version", "1"); identify.insert("description", m_description); for(int i = 0; i < m_valuesMap.size(); ++i) { QString name = m_valuesMap.keys().at(i); QString value = m_valuesMap.value(name); values.insert(name, value); } device.insert("model", QJsonValue("VHD5000")); device.insert("values", values); intoDev.append(device); identify.insert("devices", intoDev);
А вот если я использую для корня всего документа QJsonArray то поля само собою чуть по другому выглядят, но они в том порядке в каком я заполняю.
QJsonArray identify; QJsonObject values; QJsonObject device; QJsonArray intoDev; identify.append(QJsonValue (createObject("type", "vhd5preset"))); identify.append(QJsonValue (createObject("version", "1"))); identify.append(QJsonValue (createObject("description", m_description))); for(int i = 0; i < m_valuesMap.size(); ++i) { QString name = m_valuesMap.keys().at(i); QString value = m_valuesMap.value(name); values.insert(name, value); } device.insert("model", "VHD5000"); device.insert("values", values); intoDev.append(device); identify.append(QJsonValue (createObject("devices", intoDev))); QJsonDocument doc(identify);
Может кто подсказать с чем связана сортировка?
Заранее спасибо.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
B
- Bogdannn
- 28 марта 2024 г. 5:15
C++ - Тест 001. Первая программа и типы данных
- Результат:46баллов,
- Очки рейтинга-6
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 12:50
EVA25 декабря 2023 г. 21:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru Codreanu19 января 2024 г. 22:57
BlinCT27 декабря 2023 г. 19:57
Дмитрий10 января 2024 г. 15:18
Evgenii Legotckoi12 декабря 2023 г. 17:48
QJsonObject хранит объекты как QMap, порядок расположения объектов идет в алфавитном порядке навания ключа.
А как можно обойти такой вариант?
Конечно можно:
1. Сгенерировать JSON самостоятельно, в нужном порядке;
2. Использовать другие библиотеки (не Qt), например rapid JSON или Nlohmann JSON , но как в них реализован порядок хранения я не знаю