JSON_PARSE

✅ ✅ Azure Stream Analytics Fabric Eventstream

JSON_PARSE mengonversi string berformat JSON menjadi rekaman yang bisa Anda akses dan kueri. Gunakan fungsi ini saat peristiwa berisi objek JSON berlapis yang diserialisasikan sebagai string, seperti data properti dalam peristiwa perubahan Eventstream Fabric.

Mengapa menggunakan JSON_PARSE

Banyak skenario streaming, terutama integrasi Eventstream, berisi peristiwa di mana properti adalah dokumen JSON yang diserialisasikan sebagai string. Selama deserialisasi peristiwa, payload berlapis ini diperlakukan sebagai string, sehingga Anda tidak dapat langsung mengakses propertinya sebagai objek JSON. Gunakan JSON_PARSE untuk mengonversi JSON yang dikodekan string menjadi rekaman terstruktur yang propertinya dapat Anda akses dan kueri.

Syntax

JSON_PARSE ( jsonString )

Argumen

Name Type Deskripsi
jsonString nvarchar(max) Objek JSON yang valid diserialisasikan sebagai string.

Tipe pengembalian

Mengembalikan objek JSON yang diurai sebagai nilai jenis record.

Penanganan kesalahan

JSON_PARSE adalah fungsi non-pelemparan. Jika penguraian tidak dapat diselesaikan, fungsi mengembalikan alih-alih NULL gagal dalam eksekusi kueri. JSON_PARSE mengembalikan NULL ketika:

  • Ekspresi input bukan nilai string yang didukung.
  • String yang disediakan bukan JSON yang valid.
  • Kegagalan konversi JSON lainnya terjadi.

Contoh

Contohnya menggunakan peristiwa input berikut. Properti old dan current berisi objek JSON yang diserialisasikan sebagai string.

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

Mengurai string JSON berlapis

Kueri berikut mengonversi string eventrow.old JSON menjadi rekaman:

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

Mengakses properti dalam rekaman yang diurai

Kueri berikut mengurai eventrow.current dan mengakses properti dalam rekaman yang dikembalikan dengan menggunakan notasi titik:

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