JSONiq


JSONiq — это язык запросов и функционального программирования , предназначенный для декларативного запроса и преобразования коллекций иерархических и разнородных данных в формат JSON , XML , а также неструктурированных текстовых данных.

JSONiq — это открытая спецификация, опубликованная под лицензией Creative Commons Attribution-ShareAlike 3.0 . Он основан на языке XQuery , с которым он использует те же основные выражения и операции над атомарными типами. JSONiq поставляется в двух синтаксических вариантах, которые изначально поддерживают JSON и XML.

JSONiq в первую очередь предоставляет средства для извлечения и преобразования данных из документов JSON или любого источника данных, который можно рассматривать как JSON (например, реляционные базы данных или веб-службы ).

Основным выражением для выполнения таких операций является SQL - подобное « выражение FLWOR », полученное из XQuery. Выражение FLWOR состоит из пяти предложений, в честь которых оно названо: FOR, LET, WHERE, ORDER BY, RETURN. Однако он также поддерживает предложения для группировки и работы с окнами.

Язык также предоставляет синтаксис для создания новых документов JSON, где либо имена полей и значения известны заранее, либо могут быть вычислены динамически. Язык JSONiq (не расширение XQuery) является надмножеством JSON. То есть каждый документ JSON является допустимой программой JSONiq.

Кроме того, язык также поддерживает навигационный синтаксис для извлечения имен и значений полей из объектов JSON, а также значений из массивов JSON. Навигация устойчива при отсутствии значений или если значения неоднородны, поскольку она автоматически игнорирует непредвиденные значения, не вызывая ошибок.