Spec-Zone.ru › Qt 5.6

Поддержка 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 ограничена допустимым диапазоном и точностью чисел с плавающей точкой. Строка может быть любой допустимой строкой Юникода. Массив — это список значений, а объект — это коллекция пар ключ/значение. Все ключи в объекте — строки, и объект не может содержать дублирующихся ключей.

Текстовое представление 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.

QJsonArray

Запрещает массив JSON

QJsonDocument

Способ чтения и записи документов JSON

QJsonParseError

Используется для сообщения об ошибках при парсинге JSON

QJsonObject

Запрещает объект JSON

QJsonObject::const_iterator

Класс QJsonObject::const_iterator предоставляет итератор типа STL для QJsonObject

QJsonObject::iterator

Класс QJsonObject::iterator предоставляет итератор типа STL для неконстантного объекта QJsonObject

QJsonValue

Запрещает значение JSON

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/json.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API