JSON_PARSE

✅Eventstream のAzure Stream Analytics ✅ Fabric

JSON_PARSE は、JSON 形式の文字列をアクセスしてクエリできるレコードに変換します。 イベントに文字列としてシリアル化された入れ子になった JSON オブジェクト (Fabric Eventstream 変更イベントの data プロパティなど) が含まれている場合に、この関数を使用します。

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 ではありません。
  • もう 1 つの JSON 変換エラーが発生します。

Examples

この例では、次の入力イベントを使用します。 oldプロパティと current プロパティには、文字列としてシリアル化された JSON オブジェクトが含まれています。

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

入れ子になった JSON 文字列を解析する

次のクエリは、 eventrow.old の JSON 文字列をレコードに変換します。

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