Json что это простыми: что это за текстовый формат

Что такое API простыми словами

Почему API называется интерфейсом

Принцип работы API можно представить как общение клиента и сервера. Запрос исходит от клиента, ответ посылает сервер. Например, сервер-метеослужба отправляет данные через API погодным приложениям, которые показывают их на телефоне.

API бывают:

  • У операционных систем — так программы получают данные и меняют настройки.
  • У языков программирования, чтобы разные функции взаимодействовали корректно.
  • В вебе, там они помогают сервисам общаться друг с другом. Если бы все API отключились, сервисы перестали бы работать в ту же секунду.

API считается интерфейсом, потому что скрывает внутреннее устройство взаимодействующих программ. Чтобы вызвать функцию стороннего приложения, не нужно знать, как оно работает. Это упрощает работу: программисту не приходится изучать чужой код, чтобы подключить его функции к своим.

Как работает API

Пользовательский интерфейс предназначен для человека, а API используют приложения. Пользователь вызывает API, который сообщает приложению, что нужно что-то сделать, затем приложение использует API, чтобы тоже попросить веб-сервер что-то сделать. API — это посредник между приложением и сервером. Каждый раз, когда приложение связывается с другим приложением или с сервером, используется API.

Например, посетитель ресторана (пользователь) заказывает у официанта (API) еду с кухни (сервер). Посетителю не нужно знать, как работает кухня, чтобы получить заказ. Можно даже не разбираться в особенностях блюд, достаточно показать на желаемое пальцем.

Приложению не нужно понимать, как работает веб-сервер, достаточно знать, как использовать API для получения данных, необходимых для отображения. А конечному пользователю не нужно понимать, как работают API, достаточно знать, как перемещаться по пользовательскому интерфейсу для выполнения своих задач.

Типы API

REST API

Большинство всех общедоступных API-интерфейсов используют REST из-за его высокой производительности, надёжности и возможности масштабирования.

REST, Representational State Transfer, применяют везде, где пользователю сайта или веб-приложения нужно предоставить данные с сервера. Данные, которые должны быть доставлены, отформатированы в HTML, JSON или XML.

Набор операций — это методы, доступные для HTTP, базовый протокол для того, как браузеры извлекают веб-сайты с серверов. Эти методы включают GET (чтение данных, например получение информации о погоде), POST (создание новых ресурсов, например публикацию сообщения), PUT (для обновления или замены данных), DELETE (для удаления данных).

Запрос REST API состоит из четырёх частей:

  • URI — унифицированный идентификатор ресурса, представляющий собой URL-адрес.
  • HTTP-метод — чаще всего либо GET, либо POST.
  • Headers, которые включают токены аутентификации, определяют формат данных ответа, устанавливают ограничения скорости и выполняют другие административные задачи.
  • Body — фактическая часть запроса.

SOAP API

SOAP, Simple Object Access Protocol, немного сложнее, чем REST, потому что требует больше информации о безопасности и о том, как он отправляет сообщения. Более того, данные должны быть написаны на языке XML в соответствии со строгими стандартами, иначе сервер вернёт ошибку.

Корректное SOAP-сообщение состоит из трёх частей:

  • Envelope, который определяет XML-документ как сообщение SOAP.
  • Header, который содержит атрибуты сообщения.
  • Body — сообщение, которое передаёт веб-приложение. Оно может содержать запрос к серверу или ответ от него.

API браузера

Браузер способен создавать широкий спектр пользовательских интерфейсов, таких как воспроизведение музыки, отображение сложных анимаций, реакция на ввод с помощью мыши или клавиатуры. Браузер предоставляет веб-разработчикам контроль над этими возможностями через API браузера, использующие JavaScript для манипулирования HTML.

iOS и Android API

Подобно API-интерфейсам браузера, каждая мобильная платформа имеет набор API-интерфейсов, который предоставляет разработчикам инструменты создания возможностей для пользователей. Разработчики приложений используют эти API для передачи данных на устройства, использования камеры, воспроизведения музыки или выполнения других функций.

Как вызвать API

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

Косвенный вызов API производит пользователь, работая с графическим интерфейсом. Например, щёлкая по кнопке «Создать новую вкладку» в браузере, пользователь вызывает в API функции, результат которых — появление новой вкладки.

Сравнение SOAP и REST с JSON [2019] | by Islam Tashpulatov

Islam Tashpulatov

·

Follow

7 min read

·

Jan 21, 2019

Эта статья была в последний раз обновлена ​​в январе 2019 года.

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

Связанные данные хранятся на удаленном сервере и передаются на клиентский компьютер через API, которые предоставляют веб-сервисы сторонним пользователям. API могут использовать разные архитектуры для передачи данных с сервера на клиент.

Долгое время SOAP был протоколом обмена сообщениями, который использовался почти всеми веб-службами. Поскольку в наши дни разработчикам необходимо создавать легкие веб-приложения и мобильные приложения, более гибкая архитектура REST быстро завоевала популярность. В 2018 году большинство общедоступных веб-служб предоставили API-интерфейсы REST и передавали данные в компактном и простом в использовании формате обмена данными JSON. Однако корпоративные пользователи все еще часто выбирают SOAP для своих веб-сервисов. То же самое произойдет и в 2019 году.

SOAP и REST позволяют создавать собственный API. API означает интерфейс прикладного программирования. Это позволяет передавать данные из приложения в другие приложения. API получает запросы и отправляет ответы через интернет-протоколы, такие как HTTP, SMTP и другие. Многие популярные веб-сайты предоставляют общедоступные API-интерфейсы для своих пользователей, например, Google Maps имеет общедоступный REST API, который позволяет настраивать Google Maps с вашим собственным контентом. Есть также много API, которые были созданы компаниями для внутреннего использования.

SOAP и REST — это два стиля API, которые подходят к вопросу передачи данных с другой точки зрения. SOAP — это стандартизированный протокол, который отправляет сообщения с использованием других протоколов, таких как HTTP и SMTP. Спецификации SOAP являются официальными веб-стандартами, которые поддерживаются и разрабатываются Консорциумом World Wide Web (W3C). В отличие от SOAP, REST — это не протокол, а архитектурный стиль. Архитектура REST устанавливает набор рекомендаций, которым необходимо следовать, если вы хотите предоставить веб-службу RESTful, например, существование без сохранения состояния и использование кодов состояния HTTP.

Поскольку SOAP является официальным протоколом, он поставляется со строгими правилами и расширенными функциями безопасности, такими как встроенная совместимость с ACID и авторизация. Более высокая сложность требует большей пропускной способности и ресурсов, что может привести к снижению времени загрузки страницы. REST был создан для решения проблем SOAP. Поэтому у него более гибкая архитектура. Он состоит только из простых рекомендаций и позволяет разработчикам реализовывать рекомендации по-своему. Он допускает различные форматы сообщений, такие как HTML, JSON, XML и простой текст, в то время как SOAP допускает только XML. REST также является более легкой архитектурой, поэтому веб-сервисы RESTful имеют более высокую производительность. Из-за этого он стал невероятно популярным в эпоху мобильных устройств, где даже несколько секунд имеют большое значение (как по времени загрузки страницы, так и по доходам).

REST расшифровывается как представительский государственный трансферт. Это архитектурный стиль, который определяет набор рекомендаций для разработки слабосвязанных приложений, использующих протокол HTTP для передачи данных. REST не предписывает, как реализовать принципы на более низком уровне. Вместо этого, рекомендации REST позволяют разработчикам реализовывать детали в соответствии со своими потребностями. Веб-сервисы, созданные в соответствии с архитектурным стилем REST, называются веб-сервисами RESTful.

Чтобы создать REST API, необходимо соблюдать шесть архитектурных ограничений:

  1. Унифицированный интерфейс — запросы от разных клиентов должны выглядеть одинаково, например, один и тот же ресурс не должен иметь более одного URI.
  2. Разделение клиент-сервер — клиент и сервер должны действовать независимо друг от друга. Они должны взаимодействовать друг с другом только через запросы и ответы.
  3. Безгражданство — не должно быть никаких сеансов на стороне сервера. Каждый запрос должен содержать всю информацию, которую сервер должен знать.
  4. Кэшируемые ресурсы — ответы сервера должны содержать информацию о том, кэшируются ли отправляемые ими данные или нет. Кэшируемые ресурсы должны поступать с номером версии, чтобы клиент мог не запрашивать одни и те же данные более одного раза.
  5. Многоуровневая система. Между клиентом и сервером, который возвращает ответ, может быть несколько уровней серверов. Это не должно влиять ни на запрос, ни на ответ.
  6. Код по запросу [необязательно] — когда это необходимо, ответ может содержать исполняемый код (например, JavaScript в ответе HTML), который может выполнить клиент.

В 2018 году REST стал самым популярным выбором разработчиков для создания общедоступных API. Вы можете найти множество примеров по всему Интернету, тем более что все крупные сайты социальных сетей предоставляют API-интерфейсы REST, так что разработчики могут легко интегрировать свои приложения с платформой. Эти публичные API также поставляются с подробной документацией, где вы можете получить всю информацию, необходимую для извлечения данных через API.

Например, в Twitter есть несколько общедоступных API-интерфейсов REST, которые служат различным целям, например, API-интерфейс поиска, с помощью которого вы можете находить исторические твиты, API-интерфейс Direct Message, с помощью которого вы можете отправлять персонализированные сообщения, и API-интерфейс рекламы, с помощью которого вы можете программно управлять своими рекламными кампаниями. WordPress REST API является еще одним популярным примером для REST API. Он предоставляет конечные точки для типов данных WordPress, так что вы можете удаленно взаимодействовать с содержимым сайта WordPress и достигать замечательных результатов, таких как создание мобильных приложений с WordPress .

Согласно скандинавским API , REST почти всегда лучше для веб-API, так как он предоставляет данные в виде ресурсов (например user), а не сервисов (например getUser), как работает SOAP. Кроме того, REST наследует HTTP операции, то есть вы можете сделать простые вызовы API , используя хорошо известные HTTP глаголы , как GET, POST, PUTи DELETE.

Архитектура REST позволяет поставщикам API доставлять данные в различных форматах, таких как простой текст, HTML, XML, YAML и JSON, что является одной из его самых любимых функций. Благодаря растущей популярности REST, легкий и читаемый человеком формат JSON также быстро завоевал популярность, так как он отлично подходит для быстрого и безболезненного обмена данными.

JSON означает JavaScript Object Notation. Это простой для анализа и легкий формат обмена данными. Несмотря на свое название, JSON полностью независим от языка, поэтому его можно использовать с любым языком программирования, а не только с JavaScript. Его синтаксис является подмножеством стандарта ECMA-262, 3-е издание . Файлы JSON состоят из наборов пар имя / значение и упорядоченных списков значений, которые представляют собой универсальные структуры данных, используемые большинством языков программирования. Поэтому JSON может быть легко интегрирован с любым языком.

Чтобы увидеть разницу между XML и JSON, вот пример кода из документов API Crowd Serverкомпании Atlassian, который позволяет запрашивать и принимать данные в форматах XML и JSON:

<?xml version="1.0" encoding="UTF-8"?>
<authentication-context>
<username>my_username</username>
<password>my_password</password>
<validation-factors>
<validation-factor>
<name>remote_address</name>
<value>127.0.0.1</value>
</validation-factor>
</validation-factors>
</authentication-context>

Вот как выглядит приведенный выше XML-код в JSON:

{
"username" : "my_username",
"password" : "my_password",
"validation-factors" : {
"validationFactors" : [
{
"name" : "remote_address",
"value" : "127.0.0.1"
}
]
}
}

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

SOAP означает простой протокол доступа к объектам. Это протокол обмена сообщениями для обмена данными в децентрализованной и распределенной среде. SOAP может работать с любым протоколом прикладного уровня, таким как HTTP, SMTP, TCP или UDP. Он возвращает данные получателю в формате XML. Безопасность, авторизация и обработка ошибок встроены в протокол и, в отличие от REST, не предполагают прямой связи точка-точка. Поэтому он хорошо работает в распределенной корпоративной среде.

SOAP следует формальному и стандартизированному подходу, который определяет, как кодировать XML-файлы, возвращаемые API. На самом деле сообщение SOAP — это обычный XML-файл, состоящий из следующих частей:

  1. Конверт (обязательно) — это начальный и конечный теги сообщения.
  2. Заголовок (необязательно) — содержит необязательные атрибуты сообщения. Это позволяет расширять сообщение SOAP модульным и децентрализованным способом.
  3. Тело (обязательно) — содержит данные XML, которые сервер передает получателю.
  4. Неисправность (необязательно) — содержит информацию об ошибках, возникших при обработке сообщения.

Вот как выглядит обычное SOAP-сообщение. Пример взят из документов W3C SOAP и содержит конверт SOAP, блок заголовка и тело:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<n:alertcontrol xmlns:n="http://example.org/alertcontrol">
<n:priority>1</n:priority>
<n:expires>2001-06-22T14:00:00-05:00</n:expires>
</n:alertcontrol>
</env:Header>
<env:Body>
<m:alert xmlns:m="http://example.org/alert">
<m:msg>Pick up Mary at school at 2pm</m:msg>
</m:alert>
</env:Body>
</env:Envelope>

В 2019 году SOAP, вероятно, продолжит использоваться для веб-сервисов уровня предприятия, которые требуют высокой степени безопасности и сложных транзакций. API-интерфейсы для финансовых услуг, платежных шлюзов, программного обеспечения CRM, управления идентификацией и телекоммуникационных услуг являются широко используемыми примерами SOAP. Одним из наиболее известных API-интерфейсов SOAP является общедоступный API- интерфейс PayPal, который позволяет принимать платежи через PayPal и кредитные карты, добавлять кнопку PayPal на ваш веб-сайт, разрешать пользователям входить в систему через PayPal и выполнять другие действия, связанные с PayPal.

Поддержка устаревших систем — еще один частый аргумент в пользу использования SOAP . У популярных веб-сервисов, которые существуют некоторое время, может быть много пользователей, которые все еще подключаются к своим сервисам через свой SOAP API, который был лидером рынка до того, как REST приобрел популярность. Например, Salesforce предоставляет API-интерфейсы SOAP и REST, так что каждый разработчик может интегрировать Salesforce со своей собственной платформой таким образом, который подходит им наилучшим образом.

Кроме того, SOAP может быть отличным решением в ситуациях, когда вы не можете использовать REST. Хотя в наши дни большинство провайдеров веб-услуг хотят обмениваться запросами и ответами без учета состояния, в некоторых случаях вам может потребоваться обрабатывать операции с состоянием. Это происходит в сценариях, в которых цепочка операций должна действовать как одна транзакция, например, в случае банковских переводов. Хотя API-интерфейсы SOAP по умолчанию не имеют состояния, SOAP поддерживает операции с состоянием, которые могут быть реализованы с использованием спецификаций WS- * (веб-сервисов) , основанных на основных стандартах XML и SOAP.

Хотя REST очень популярен в наши дни, SOAP по-прежнему занимает свое место в мире веб-сервисов. Чтобы помочь вам выбрать между ними, вот сравнительная таблица SOAP и REST, которая выделяет основные различия между двумя стилями API:

https://gist.github.com/nanotexnolagiya/8d27d4e4653c23193ebd479a6a6fbfa8#file-gistfile1-txt

Простые данные JSON | NIEM GitHub

  1. Домашняя страница
  2. NIEM и JSON
  3. Часто задаваемые вопросы
  4. Что такое данные NIEM JSON?
  5. Обычные данные JSON

JSON определяется RFC 4627:

JavaScript Object Notation (JSON) — это облегченная текстовая,
независимый от языка формат обмена данными. JSON определяет небольшой набор
правила форматирования для переносимого представления структурированных данных.

Данные JSON, в самом простом случае, могут быть одним объектом, состоящим из полей, каждое из которых
поле, имеющее простое значение.

Некоторые термины:

  • Значение может быть простым значением, массивом или объектом.

  • Простое значение может быть строкой, числом или логическим значением true или
    false или null .

    • Строка представляет собой серию символов Unicode в кавычках, и
      может содержать экранированные специальные символы (например, backspace или newline) или
      шестнадцатеричные коды символов.

    • Число представляет собой целое число (например, 43, -271), десятичное значение (например, 3,026,
      -0,0328) или экспоненциальное представление (например, 2,3e14, 2,7E-12).

    • Значения true и false являются простыми
      значений и отражать их логическое значение.

    • Значение null можно использовать по-разному, но
      в целом отражает обычную концепцию значение без значения .

  • Массив представляет собой упорядоченный список значений, разделенных
    запятые. Массив заключен в квадратные скобки. Например:

    • Массив с 3 значениями: [ "one", 1, true ]

    • Массив с одним значением: [ true ]

    • Массив, не содержащий значений: [ ]

  • Объект представляет собой набор из пар "имя": значение .

    • Имя пары называется ключом . Ключ пары — это
      нить.

    • Значение пары может быть значением любого типа: простое значение, массив или
      объект.

    • Пары разделяются запятыми.

    • Данный ключ должен встречаться в объекте только один раз.

    • Порядок ключей внутри объекта не должен учитываться
      значительный. Ключи могут появляться внутри объекта в любом порядке.

    • Например:

      • Пустой объект: { }

      • Объект с одной парой: { "GivenName": "Morty" }

      • Объект с простыми значениями:

 {
  «Имя»: «Мортимер»,
  "Фамилия": "Смит",
  "NameSuffixText": "Старший",
  «Предпочитаемое имя»: «Морти»,
}
 

Хотя файл JSON может иметь любое значение, файл JSON обычно состоит из одного
объект, возможно содержащий другие объекты. Например:

 {
  "nc:PersonAgeMeasure": {
    "nc:MeasureIntegerValue": 14,
    "nc:TimeUnitCode": "ИНН"
  },
  "j:PersonHairColorCode": "БРО",
  "nc:PersonName": {
    "nc:PersonGivenName": "Мортимер",
    "nc:PersonSurName": "Смит",
    "nc:PersonNameSuffixText": "Старший",
    "nc:PersonPreferredName": "Морти"
  }
}
 

Зачем использовать NIEM с JSON?

Что такое данные NIEM JSON?

Справочное руководство

Простые запросы · JSONata

Для поддержки извлечения значений из структуры JSON определен синтаксис пути расположения. Как и в случае с XPath, при этом будут выбраны все возможные значения в документе, соответствующие указанному пути расположения. Две структурные конструкции JSON — это объекты и массивы.

Навигация по объектам JSON

Объект JSON представляет собой ассоциативный массив (также известный как карта или хэш). Синтаксис пути к местоположению для перехода к произвольно глубоко вложенной структуре объектов JSON включает имена полей, разделенные точкой ‘. ‘ разделители. Выражение возвращает значение JSON, указанное после перехода к последнему шагу в пути расположения. Если во время навигации по пути местоположения поле не найдено, то выражение ничего не возвращает (представлено Javascript undefined ). Ошибки не возникают из-за отсутствия данных во входном документе.

Следующий пример документа JSON используется в качестве примеров в этом руководстве, если не указано иное:

 {
  "Имя": "Фред",
  "Фамилия": "Смит",
  «Возраст»: 28,
  "Адрес": {
    «Улица»: «Херсли Парк»,
    «Город»: «Винчестер»,
    "Почтовый индекс": "SO21 2JN"
  },
  "Телефон": [
    {
      "тип": "дом",
      "номер": "0203 544 1234"
    },
    {
      "тип": "офис",
      "номер": "01962 001234"
    },
    {
      "тип": "офис",
      "номер": "01962 001235"
    },
    {
      "тип": "мобильный",
      "номер": "077 7700 1234"
    }
  ],
  "Электронная почта": [
    {
      "тип": "работа",
      "адрес": ["[email protected]", "fsmith@my-work. com"]
    },
    {
      "тип": "дом",
      "адрес": ["[email protected]", "[email protected]"]
    }
  ],
  "Другой": {
    «Старше 18?»: правда,
    "Разное": ноль,
    "Альтернативный.Адрес": {
      «Улица»: «Кирпичный переулок»,
      «Сити»: «Лондон»,
      "Почтовый индекс": "E1 6RF"
    }
  }
}
 
Примеры

Вот несколько примеров выражений и их результаты при применении к приведенному выше документу JSON:

  • Возвращает строку JSON («двойные кавычки»)

    Фамилия

    «Смит»

  • Возвращает номер JSON

  • Ссылки на поля разделяются символом ‘.’

    Адрес.Город

    «Винчестер»

  • Соответствует пути и возвращает нулевое значение

    Другое.Разное

    ноль

  • Путь не найден. Ничего не возвращает (т.е. Javascript undefined )

    Другое.Ничего

  • Ссылки на поля, содержащие пробелы или зарезервированные токены, могут быть заключены в обратные кавычки

    Другое. «Старше 18 лет»

    true

Навигация по массивам JSON

Массивы JSON используются, когда требуется упорядоченный набор значений. Каждое значение в массиве связано с индексом (позицией), а не с именем, поэтому для адресации отдельных значений в массиве требуется дополнительный синтаксис для указания индекса. Это делается с помощью квадратных скобок после имени поля массива. Если квадратные скобки содержат число или выражение, результатом которого является число, то число представляет собой индекс выбираемого значения. Индексы имеют смещение нуля, т.е. первое значение в массиве обр это обр[0] . Если число не является целым числом, то оно округляется с в меньшую сторону на до целого числа. Если выражение в квадратных скобках не является числовым или является выражением, результатом которого не является число, то оно обрабатывается как предикат.

Отрицательные индексы отсчитываются от конца массива, например, arr[-1] выберет последнее значение, arr[-2] предпоследнее и т. д. Если указан индекс, превышающий размер массива, то ничего не выбрано.

Если для массива не указан индекс (т.е. нет квадратных скобок после ссылки на поле), то выбирается весь массив. Если массив содержит объекты, и путь местоположения выбирает поля внутри этих объектов, то каждый объект в массиве будет запрошен для выбора.

Примеры
  • Возвращает первый элемент (объект)

    Телефон[0]

    { «тип»: «домашний», «номер»: «0203 544 1234» }

  • Возвращает второй элемент

    Телефон[1]

    { «тип»: «офис», «номер»: «01962 001234» }

  • Возвращает последний элемент

    Телефон[-1]

    { «тип»: «мобильный», «номер»: «077 7700 1234» }

  • Отрицательный индексированный счет с конца

    Телефон[-2]

    { «тип»: «офис», «номер»: «01962 001235» }

  • Не существует — ничего не возвращает

    Телефон[8]

  • Выбирает номер поле в первом пункте

    Phone[0]. number

    «0203 544 1234»

  • Для Phone не указан индекс, поэтому он выбирает их все (весь массив), затем выбирает все поля number для каждого из них

    Phone.number

    [ «0203 544 1234», «01962 001234», «01962 001235», «077 7700 1234» ]

  • Можно ожидать, что он просто вернет первый номер, но он возвращает первый номер каждого из предметов, выбранных Телефон

    Телефон.номер[0]

    [«0203 544 1234», «01962 001234», «01962 001235», «077 7700 1234»]

  • Применяет индекс к массиву, возвращенному Phone.number . Одно использование скобок.

    (номер телефона)[0]

    «0203 544 1234»

  • Возвращает диапазон элементов путем создания массива индексов

    Телефон[[0..1]]

    [
    { «тип»: «дом», «номер»: «0203 544 1234» },
    { «тип»: «офис», «номер»: «01962 001234» }
    ]

  • Результирующие последовательности

    Выравнивание последовательности

    Пустые последовательности и одноэлементные последовательности

    Массивы верхнего уровня, вложенные массивы и выравнивание массива

    Рассмотрим документ JSON:

     [
      { "ссылка": [1,2]},
      { "ссылка": [3,4]}
    ]
     

    На верхнем уровне у нас есть массив, а не объект. Если мы хотим выбрать первый объект в этом массиве верхнего уровня, у нас нет имени поля, к которому можно добавить [0] . Мы не можем использовать [0] сам по себе, потому что это конфликтует с синтаксисом конструктора массива. Однако мы можем использовать контекст ссылку $ для ссылки на начало документа следующим образом:

    • $ в начале выражения относится ко всему входному документу

      $[0]

      { «ref»: [ 1,2 ] }

    • .ref здесь возвращает весь внутренний массив

      $[0].ref

      [ 1,2 ]

    • возвращает элемент на первую позицию внутреннего массива

      $[0].ref[0]

      1

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

      This entry was posted in Популярное