全部产品
Search
文档中心

实时计算Flink版:JSON_TUPLE

更新时间:Feb 05, 2026

本文为您介绍如何使用JSON_TUPLE函数,从JSON字符串中取出各路径字符串所表示的值。

使用限制

仅实时计算引擎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 行(空集)。

    • 内容:无。