✅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