Поддержка JSON в Qt
Qt предоставляет поддержку работы с данными в формате JSON. JSON — это формат кодирования данных объектов, взятый из Javascript, но в настоящее время широко используемый в качестве формата обмена данными в интернете.
Поддержка JSON в Qt предоставляет удобный C++ API для разбора, модификации и сохранения данных JSON. Она также содержит поддержку сохранения этих данных в двоичном формате, который напрямую поддерживает «mmap» и очень быстрый в доступе.
Более подробную информацию о формате данных JSON можно найти на сайте json.org и в RFC-4627.
Обзор
JSON — это формат для хранения структурированных данных. Он имеет 6 основных типов данных:
- bool
- double
- string
- array
- object
- null
Значение может иметь любой из вышеперечисленных типов. Логическое значение представляется строками true или false в JSON. JSON не явно определяет допустимый диапазон для чисел, но поддержка в Qt ограничена диапазоном и точностью значений типа double. Строка может быть любой допустимой строкой Unicode. Массив представляет собой список значений, а объект — набор пар «ключ-значение». Все ключи в объекте являются строками, и объект не может содержать дублирующихся ключей.
Текстовое представление JSON заключает массивы в квадратные скобки ([ ... ]) и объекты в фигурные скобки ({ ... }). Элементы в массивах и объектах разделяются запятыми. Разделителем между ключом и значением в объекте является двоеточие (:).
Простой документ JSON, кодирующий человека, его возраст, адрес и номера телефонов, может выглядеть следующим образом:
{
"FirstName": "John",
"LastName": "Doe",
"Age": 43,
"Address": {
"Street": "Downing Street 10",
"City": "London",
"Country": "Great Britain"
},
"Phone numbers": [
"+44 1234567",
"+44 2345678"
]
} Приведенный выше пример состоит из объекта с 5 парами «ключ-значение». Два из значений являются строками, одно — числом, одно — другим объектом, а последнее — массивом.
Допустимый документ JSON представляет собой либо массив, либо объект, поэтому документ всегда начинается с квадратной или фигурной скобки.
Классы JSON
Все классы JSON основаны на значениях, классы с неявным совместным использованием.
Поддержка JSON в Qt состоит из следующих классов:
См. также Пример сохранения игры в формате JSON.
Оборачивает массив JSON |
|
Способы чтения и записи документов JSON |
|
Оборачивает объект JSON |
|
Класс QJsonObject::const_iterator предоставляет итератор типа STL для QJsonObject (только для чтения) |
|
Класс QJsonObject::iterator предоставляет итератор типа STL для QJsonObject (для изменения) |
|
Используется для отчета об ошибках при разборе JSON |
|
Оборачивает значение в JSON |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/json.html