Jump to content

JSONPath

JSONPath
Парадигма Язык запросов
Разработано Стефан Гесснер
Разработчик Стефан Гесснер
Впервые появился 2007 (в блоге)
2024 г. (стандартизировано)
Под влиянием
XPath
JSONPath
Статус Предлагаемый стандарт
Год начался февраль 2024 г. ( 2024-02 )
Организация IETF
Редакторы Стефан Гесснер
Глин Нормингтон
Карстен Борман
Авторы Стефан Гесснер
Базовые стандарты JSON
Сопутствующие стандарты XPath

В компьютерном программном обеспечении JSONPath — это язык запросов для запроса значений в формате JSON . Использование JSONPath включает в себя:

  • Выбор конкретного узла в значении JSON
  • Получение набора узлов из значения JSON на основе определенных критериев.
  • Навигация по сложным значениям JSON для получения необходимых данных.

Запросы JSONPath представляют собой выражения пути, записанные в виде строк, например $.foo.

Выражение JSONPath $.store.book[0] применяется к следующему значению JSON:

{
  "store": {
    "book": [
      { "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 399
    }
  }
}

выбирает первую книгу (Найджела Риса):

{
  "author": "Nigel Rees",
  "title": "Sayings of the Century",
  "price": 8.95
}

Выражение $.store.book[*].price извлекает цены на книги: 8,95 и 22,99 (поскольку [*] выбирает все узлы массива).

Выражение $..price извлекает все цены: 8,95, 22,99 и 399.

JSONPath впервые был описан в онлайн-статье. [ 1 ] Стефан Гесснер в феврале 2007 года. Гесснер также опубликовал первоначальные реализации на JavaScript и PHP.

Впоследствии было создано более пятидесяти реализаций на различных языках программирования. Проект сравнения JSONPath перечисляет многие из этих реализаций и сравнивает их поведение. [ 2 ] JSONPath широко используется в экосистеме Java . [ 3 ]

В 2024 году IETF опубликовал стандарт JSONPath как РФК 9535 . [ 4 ]

Исследовать

[ редактировать ]
  • Масштабируемая обработка современных полуструктурированных данных на товарных параллельных процессорах — подход, основанный на компиляции [ 5 ] описывает оптимизацию, которая преобразует запросы JSONPath в параллельные программы с ограниченными требованиями к памяти.
  • Поддержка потомков в JSONPath с SIMD-ускорением [ 6 ] описывает оптимизацию запросов потомков JSONPath при потоковой передаче потенциально очень больших значений JSON.
  • τJSONPath: временное расширение языка JSONPath для платформы τJSchema. [ 7 ] описывает временное расширение JSONPath, которое поддерживает запрос версий значения JSON по его истории версий.

Альтернативы

[ редактировать ]
  • JMESPath [ 8 ] — это язык запросов для JSON с функциями, выходящими далеко за рамки JSONPath. У него есть спецификация, набор тестов на соответствие и несколько реализаций на разных языках.
  • JSON-поддерживаемый [ 9 ] Язык запросов и преобразования данных JSON с открытым исходным кодом, созданный на основе XPath 3.1.
  • Указатель JSON [ 10 ] определяет синтаксис строки для идентификации одного значения в пределах заданного значения JSON известной структуры.
  • JSONiq [ 11 ] — это язык запросов и преобразований для JSON.
  • XPath 3.1 [ 12 ] — это язык выражений, который позволяет обрабатывать значения, соответствующие XDM. [ 13 ] модель данных. Версия 3.1 XPath поддерживает как JSON, так и XML.
  • jq это как sed для данных JSON — вы можете использовать его для разделения, фильтрации, сопоставления и преобразования структурированных данных.
  1. ^ Гесснер, Стефан. «JSONPath — XPath для JSON» . Архивировано из оригинала 11 сентября 2007 года . Проверено 22 марта 2024 г.
  2. ^ Бургмер, Кристоф. «Сравнение JSONPath» . Архивировано из оригинала 3 марта 2024 года . Проверено 22 марта 2024 г.
  3. ^ Фризен, Джефф (11 января 2019 г.). «Извлечение значений JSON с помощью JsonPath». Java XML и JSON: обработка документов для Java SE (2-е изд.). Апресс. ISBN  978-1484243299 .
  4. ^ Гесснер, Стефан; Нормингтон, Глин; Борман, Карстен (февраль 2024 г.). «RFC 9535 JSONPath: выражения запроса для JSON» . Серия RFC . Рабочая группа по проектированию Интернета (IETF) . Проверено 22 марта 2024 г.
  5. ^ Цзян, Линь; Сунь, Сяофань; Фарук, Умар; Чжао, Чжицзя (апрель 2019 г.). «Масштабируемая обработка современных полуструктурированных данных на товарных параллельных процессорах - подход, основанный на компиляции». Материалы двадцать четвертой Международной конференции по архитектурной поддержке языков программирования и операционных систем . стр. 79–92. дои : 10.1145/3297858.3304008 . ISBN  978-1-4503-6240-5 .
  6. ^ Генечко, Матеуш; Мурлак, Филип; Пейперман, Чарльз (февраль 2024 г.). «Поддержка потомков в JSONPath с SIMD-ускорением». Конференция по архитектурной поддержке языков программирования и операционных систем . 4 .
  7. ^ Брахмиа, Зухайер; Гранди, Фабио; Брахмия, Сафа; Буазиз, Рафик (2023). «τJSONPath: временное расширение языка JSONPath для платформы τJSchema». Искусственный интеллект и умная среда . Конспекты лекций по сетям и системам. Том. 635. стр. 844–853. дои : 10.1007/978-3-031-26254-8_123 . ISBN  978-3-031-26253-1 .
  8. ^ Сарьервинни, Джеймс. «JMESPath» . Архивировано из оригинала 14 марта 2024 года . Проверено 23 марта 2024 г.
  9. ^ Бэйли, Мэтт. "JSONata" . Архивировано из оригинала 25 марта 2024 года . Проверено 25 марта 2024 г.
  10. ^ Брайан, Пол; Зип, Крис; Ноттингем, Марк (апрель 2013 г.). «Указатель нотации объектов JavaScript (JSON) RFC 6901» . Серия RFC . Рабочая группа по проектированию Интернета (IETF) . Проверено 23 марта 2024 г.
  11. ^ «JSONiq» . Архивировано из оригинала 13 января 2024 года . Проверено 23 марта 2024 г.
  12. ^ Роби, Джонатан; Дайк, Майкл; Шпигель, Джош. «Язык путей XML (XPath) 3.1» . w3c.org . Архивировано из оригинала 18 января 2024 года . Проверено 24 марта 2024 г.
  13. ^ Тови-Уолш, Норман; Снельсон, Джон; Коулман, Эндрю. «Модель данных XQuery и XPath» . w3c.org . Архивировано из оригинала 18 января 2024 года . Проверено 24 марта 2024 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 115b183558001df637c9dc20f17a279a__1715784900
URL1:https://arc.ask3.ru/arc/aa/11/9a/115b183558001df637c9dc20f17a279a.html
Заголовок, (Title) документа по адресу, URL1:
JSONPath - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)