全部產品
Search
文件中心

Realtime Compute for Apache Flink:JSON_TUPLE

更新時間:Feb 06, 2026

本文為您介紹如何使用JSON_TUPLE函數,從JSON字串中取出各路徑字串所表示的值。

使用限制

僅Realtime Compute引擎VVR 3.0.0及以上版本支援JSON_TUPLE函數。

文法

JSON_TUPLE(str, path1, path2 ..., pathN)     

入參

參數

資料類型

說明

str

VARCHAR

JSON字串。

path1~pathN

VARCHAR

表示路徑的字串,前面不需要$

樣本

  • 測試資料

    表 1. T1

    d(VARCHAR)

    s(VARCHAR)

    {"qwe":"asd","qwe2":"asd2","qwe3":"asd3"}

    qwe3

    {"qwe":"asd4","qwe2":"asd5","qwe3":"asd3"}

    qwe2

  • 測試語句

    SELECT d, v 
    FROM T1, lateral table(JSON_TUPLE(d, 'qwe', s))
    AS T(v);   
  • 測試結果

    d(VARCHAR)

    v(VARCHAR)

    {"qwe":"asd","qwe2":"asd2","qwe3":"asd3"}

    asd

    {"qwe":"asd","qwe2":"asd2","qwe3":"asd3"}

    asd3

    {"qwe":"asd4","qwe2":"asd5","qwe3":"asd3"}

    asd4

    {"qwe":"asd4","qwe2":"asd5","qwe3":"asd3"}

    asd5

NULL 值處理行為變化說明

行為比對說明

假設在查詢中調用函數:json_tuple(CAST(NULL AS STRING), 'a', 'b'),其中輸入參數(str)為NULL

SELECT * FROM (VALUES (1), (2)) AS v(x)
, LATERAL TABLE(
  json_tuple(CAST(NULL AS STRING), 'a', 'b')
) AS T;
-- 每個value返回兩行null,一共 4 行 (1,null),(1,null),(2,null),(2,null)
  • VVR 11.0之前(舊行為)

    • 返回結果:4 行。

    • 內容:每行包含一個NULL列。

  • VVR 11.0 及之後(新行為):

    • 返回結果:0 行(空集)。

    • 內容:無。