JSON_PARSE

✅ Flusso di eventi dell'infrastruttura di Analisi ✅ di flusso di Azure

JSON_PARSE converte una stringa in formato JSON in un record a cui è possibile accedere ed eseguire query. Usare questa funzione quando un evento contiene un oggetto JSON annidato serializzato come stringa, ad esempio la data proprietà in un evento di modifica eventstream Fabric.

Perché usare JSON_PARSE

Molti scenari di streaming, in particolare integrazioni eventstream, contengono eventi in cui una proprietà è un documento JSON serializzato come stringa. Durante la deserializzazione degli eventi, questi payload annidati vengono considerati come stringhe, quindi non è possibile accedere direttamente alle relative proprietà come oggetti JSON. Usare JSON_PARSE per convertire json con codifica stringa in un record strutturato le cui proprietà è possibile accedere e eseguire query.

Syntax

JSON_PARSE ( jsonString )

Arguments

Nome TIPO Description
jsonString nvarchar(max) Oggetto JSON valido serializzato come stringa.

Tipo restituito

Restituisce l'oggetto JSON analizzato come valore di tipo record.

Gestione degli errori

JSON_PARSE è una funzione non generata. Se l'analisi non può essere completata, la funzione restituisce NULL invece di non riuscire l'esecuzione della query. JSON_PARSE restituisce NULL quando:

  • L'espressione di input non è un valore stringa supportato.
  • La stringa fornita non è json valido.
  • Si verifica un altro errore di conversione JSON.

Examples

Negli esempi viene usato l'evento di input seguente. Le old proprietà e current contengono oggetti JSON serializzati come stringhe.

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

Analizzare una stringa JSON annidata

La query seguente converte la stringa JSON in in eventrow.old un record:

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

Accedere alle proprietà in un record analizzato

La query seguente analizza eventrow.current e accede alle proprietà nel record restituito usando la notazione punto:

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