TRY_FROM_JSON

功能概述

将 JSON 字符串解析为指定的结构化类型(STRUCT、ARRAY、MAP 等)。解析失败时不报错,而是在结果中填充 NULL 并附带错误信息,适合处理格式不确定的 JSON 数据。

FROM_JSON
FROM_JSON
的区别:
FROM_JSON
FROM_JSON
解析失败时报错;
TRY_FROM_JSON
TRY_FROM_JSON
解析失败时返回带
_error_msg
_error_msg
字段的结果。

语法

TRY_FROM_JSON(<json_str>, <type_str>)

参数说明

  • <json_str>
    <json_str>
    :STRING 类型,待解析的 JSON 字符串。
  • <type_str>
    <type_str>
    :STRING 类型,目标类型描述,如
    'STRUCT<a:INT>'
    'STRUCT<a:INT>'
    'ARRAY<STRING>'
    'ARRAY<STRING>'

使用示例

-- 解析成功:返回结构体,_error_msg 为空 SELECT try_from_json('{"a":1}', 'STRUCT<a:INT>'); -- {"a":1,"_error_msg":""} -- 解析失败:返回结构体,字段值为 NULL,_error_msg 包含错误详情 SELECT try_from_json('invalid', 'STRUCT<a:INT>'); -- {"a":null,"_error_msg":"failed to parse json | BAD_FIELD | error position `invalid`"} -- 提取具体字段 SELECT (try_from_json('{"a":1}', 'STRUCT<a:INT>')).a AS val; -- 1

相关文档

联系我们
预约咨询
微信咨询
电话咨询