JSON_PARSE

✅ Поток событий Azure Stream Analytics ✅ Fabric

JSON_PARSE преобразует строку в формат JSON в запись, доступ к которую можно получить и запросить. Используйте эту функцию, если событие содержит вложенный объект JSON, сериализованный в виде строки, например data свойство в событии изменения потока событий Fabric.

Зачем использовать JSON_PARSE

Многие сценарии потоковой передачи, особенно интеграции Eventstream, содержат события, в которых свойство является документом JSON, сериализованным в виде строки. Во время десериализации этих вложенных полезных данных обрабатываются как строки, поэтому вы не можете напрямую получить доступ к их свойствам в виде объектов JSON. Используется JSON_PARSE для преобразования json в структурированную запись, свойства которой можно получить к данным и запросам.

Syntax

JSON_PARSE ( jsonString )

Аргументы

Имя Тип Описание
jsonString nvarchar(max) Допустимый объект JSON, сериализованный в виде строки.

Тип возвращаемого значения

Возвращает проанализированный объект JSON в качестве значения типа record.

Обработка ошибок

JSON_PARSE — это неисключающая функция. Если синтаксический анализ не может быть выполнен, функция возвращается NULL вместо сбоя выполнения запроса. JSON_PARSE возвращается NULL , когда:

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

Примеры

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

{
  "eventrow": {
    "old": "{\"SalesOrderID\":\"65191\",\"SalesOrderDetailID\":\"89090\"}",
    "current": "{\"SalesOrderID\":\"65191\",\"SalesOrderDetailID\":\"89090\",\"ProductName\":\"Touring-2000 Blue, 54\"}"
  }
}

Анализ вложенной строки JSON

Следующий запрос преобразует строку JSON в eventrow.old запись:

SELECT
    JSON_PARSE(eventrow.old) AS ParsedOldRow
INTO Output
FROM Input

Доступ к свойствам в синтаксическом анализе записи

Следующий запрос анализирует eventrow.current и обращается к свойствам в возвращаемой записи с помощью нотации точек:

WITH ParsedEvents AS
(
    SELECT JSON_PARSE(eventrow.current) AS ParsedCurrent
    FROM Input
)
SELECT
    ParsedCurrent.SalesOrderID,
    ParsedCurrent.ProductName
FROM ParsedEvents