JSON_PARSE

✅ Fluxo de eventos do Azure Stream Analytics ✅ Fabric

JSON_PARSE converte uma cadeia de caracteres formatada em JSON em um registro que você pode acessar e consultar. Use essa função quando um evento contiver um objeto JSON aninhado serializado como uma cadeia de caracteres, como a data propriedade em um evento de alteração de fluxo de eventos Fabric.

Por que usar JSON_PARSE

Muitos cenários de streaming, particularmente integrações eventstream, contêm eventos em que uma propriedade é um documento JSON serializado como uma cadeia de caracteres. Durante a desserialização de eventos, esses conteúdos aninhados são tratados como cadeias de caracteres, portanto, você não pode acessar diretamente suas propriedades como objetos JSON. Use JSON_PARSE para converter JSON codificado em cadeia de caracteres em um registro estruturado cujas propriedades você pode acessar e consultar.

Sintaxe

JSON_PARSE ( jsonString )

Arguments

Nome Tipo Descrição
jsonString nvarchar(max) Um objeto JSON válido serializado como uma cadeia de caracteres.

Tipo de retorno

Retorna o objeto JSON analisado como um valor do tipo record.

Tratamento de erros

JSON_PARSE é uma função de não lançamento. Se a análise não puder ser concluída, a função retornará NULL em vez de falhar na execução da consulta. JSON_PARSE retorna NULL quando:

  • A expressão de entrada não é um valor de cadeia de caracteres com suporte.
  • A cadeia de caracteres fornecida não é JSON válida.
  • Outra falha de conversão JSON ocorre.

Exemplos

Os exemplos usam o evento de entrada a seguir. As propriedades e as oldcurrent propriedades contêm objetos JSON serializados como cadeias de caracteres.

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

Analisar uma cadeia de caracteres JSON aninhada

A consulta a seguir converte a cadeia de caracteres JSON em eventrow.old um registro:

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

Acessar propriedades em um registro analisado

A consulta a seguir analisa eventrow.current e acessa as propriedades no registro retornado usando notação de ponto:

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