JSON_PARSE

✅ ✅ flux d’événements Azure Stream Analytics Fabric

JSON_PARSE convertit une chaîne au format JSON en un enregistrement auquel vous pouvez accéder et interroger. Utilisez cette fonction lorsqu’un événement contient un objet JSON imbriqué sérialisé en tant que chaîne, par exemple la data propriété dans un événement de modification eventstream Fabric.

Pourquoi utiliser JSON_PARSE

De nombreux scénarios de streaming, en particulier les intégrations Eventstream, contiennent des événements où une propriété est un document JSON sérialisé sous forme de chaîne. Lors de la désérialisation des événements, ces charges utiles imbriquées sont traitées comme des chaînes. Vous ne pouvez donc pas accéder directement à leurs propriétés en tant qu’objets JSON. Permet JSON_PARSE de convertir le JSON encodé en chaîne en enregistrement structuré dont vous pouvez accéder aux propriétés et les interroger.

Syntax

JSON_PARSE ( jsonString )

Arguments

Nom Catégorie Description
jsonString nvarchar(max) Objet JSON valide sérialisé en tant que chaîne.

Type de retour

Retourne l’objet JSON analysé en tant que valeur de type record.

Gestion des erreurs

JSON_PARSE est une fonction non levée. Si l’analyse ne peut pas être terminée, la fonction retourne NULL au lieu d’échouer à l’exécution de la requête. JSON_PARSE retourne NULL quand :

  • L’expression d’entrée n’est pas une valeur de chaîne prise en charge.
  • La chaîne fournie n’est pas valide JSON.
  • Un autre échec de conversion JSON se produit.

Examples

Les exemples utilisent l’événement d’entrée suivant. Les old propriétés et current les objets JSON sont sérialisés sous forme de chaînes.

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

Analyser une chaîne JSON imbriquée

La requête suivante convertit la chaîne JSON dans eventrow.old un enregistrement :

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

Propriétés d’accès dans un enregistrement analysé

La requête suivante analyse eventrow.current et accède aux propriétés de l’enregistrement retourné à l’aide de la notation par points :

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