Описание тега jsonobject

Объект JSON - это текстовое представление объекта в формате JSON, как определено в разделе 4 RFC 7159; это неупорядоченный набор пар имя / значение (называемый "членами объекта"), где имена представляют собой строки JSON, а значения могут быть любым значением JSON.

Объект JSON - это текстовое представление объекта в формате JSON, как определено в разделе 4 RFC 7159; это неупорядоченный набор пар имя / значение (называемый "членами объекта"), где имена представляют собой строки JSON, а значения могут быть любым значением JSON.

Пример (подробнее ниже): {"answer":42}

После анализа текста JSON тип результирующей структуры будет широко варьироваться в зависимости от используемой среды. Некоторые языки, такие как JavaScript, Python и Ruby, имеют встроенную поддержку (вложенных) "словарей", поэтому в результате получается собственная структура. Другие языки, такие как C, C++ и Java, не имеют таких встроенных типов и представляют анализируемый результат с помощью выделенных классов.

Примечания:

  • Имя члена может быть пустой строкой; это действительный JSON:{ "": null }.
  • Разрешены повторяющиеся имена членов, но поведение парсера JSON в этом случае не определено; например, в{ "key": "v1", "key": "v2" }, нет гарантии, что парсер JSON выдаст в качестве значения для "key".
  • JSON - это текстовая нотация для обмена данными. Если вы пишете исходный код и не имеете дело со строкой, вы больше не имеете дело с JSON, вы имеете дело с результатом синтаксического анализа JSON. Это может сбивать с толку языки, которые не могут сопоставить объект JSON со встроенной структурой, например Java, поскольку имена задействованных классов могут сбивать с толку (JSONObjectв случае многих JSON-библиотек для Java). Несмотря на название, это больше не JSON; это просто результат разбора JSON.
  • Инициализаторы объектов JavaScript - это не то же самое, что объекты JSON, например, это не JSON: var obj = {"foo":"bar"}; Инициализаторы объектов JavaScript имеют немного другую семантику, чем JSON (например, имена членов не должны быть в кавычках, значения, которые не существуют в JSON, например undefined могут быть включены, повторяющиеся имена элементов имеют определенный результат как в свободном, так и в строгом режиме, имена элементов могут быть результатом вычислений [в ES2015 и более поздних версиях] и т. д.).

Примеры:

Объект с одним членом, называемый answer, значение которого 42:

{"answer":42}

Идентичный объект с пробелом, который игнорируется в JSON:

{
    "answer" : 42
}

Объект с двумя членами:

{"answer":42,"question":"Life, the Universe, and Everything"}

Объект с другим объектом в качестве значения одного из его членов:

{
    "title": "The Hitchhiker's Guide to the Galaxy",
    "author": {
        "name": "Douglas Adams",
        "website": "http://douglasadams.com/",
        "wikipedia": "https://en.wikipedia.org/wiki/Douglas_Adams"
    }
}