JSON_PARSE

✅ Azure Stream Analytics ✅ Fabric Olay Akışı

JSON_PARSE JSON biçimli bir dizeyi erişebileceğiniz ve sorgulayabileceğiniz bir kayda dönüştürür. Bir olay, bir Fabric Eventstream değişiklik olayındaki data özelliği gibi dize olarak seri hale getirilmiş iç içe JSON nesnesi içerdiğinde bu işlevi kullanın.

Neden JSON_PARSE kullanmalısınız?

Özellikle Eventstream tümleştirmeleri olmak üzere birçok akış senaryosu, bir özelliğin dize olarak seri hale getirilmiş bir JSON belgesi olduğu olayları içerir. Olay seri durumdan çıkarma sırasında, bu iç içe yüklenen yükler dize olarak kabul edilir, bu nedenle özelliklerine JSON nesneleri olarak doğrudan erişemezsiniz. Dizeyle kodlanmış JSON'ı özelliklerine erişip sorgulayabileceğiniz yapılandırılmış bir kayda dönüştürmek için kullanın JSON_PARSE .

Syntax

JSON_PARSE ( jsonString )

Arguments

İsim Türü Description
jsonString nvarchar(max) Dize olarak seri hale getirilmiş geçerli bir JSON nesnesi.

Dönüş türü

Ayrıştırılmış JSON nesnesini türünde recordbir değer olarak döndürür.

Hata yönetimi

JSON_PARSE atanmayan bir işlevdir. Ayrıştırma tamamlanamazsa, sorgu yürütmesi başarısız olmak yerine işlev döndürülüyor NULL . JSON_PARSE şunu döndürür NULL :

  • Giriş ifadesi desteklenen bir dize değeri değildir.
  • Sağlanan dize geçerli JSON değil.
  • Başka bir JSON dönüştürme hatası oluşur.

Examples

Örneklerde aşağıdaki giriş olayı kullanılır. old ve current özellikleri dize olarak serileştirilmiş JSON nesneleri içerir.

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

İç içe JSON dizesini ayrıştırma

Aşağıdaki sorgu, içindeki eventrow.old JSON dizesini bir kayda dönüştürür:

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

Ayrıştırılmış kayıttaki özelliklere erişme

Aşağıdaki sorgu, nokta gösterimini kullanarak döndürülen kayıttaki özellikleri ayrıştırıp eventrow.current erişir:

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