开发者社区 问答 正文

Flink SQL如何解析嵌套json

已解决

Flink SQL如何解析嵌套json

展开
收起
阿里云服务支持 2022-12-16 15:42:16 637 分享 版权
2 条回答
写回答
取消 提交回答
  • 官方回答

    嵌套json想要获取指定字段,只需要在DDL中row去取对应字段的key就可以,前提是这个对应字段的key在数据中一定存在 如果对于那种某些数据中有这个key,某些数据中没有key,这种情况作业运行会报错的,这个需要自行编写udf来解析获取。

    更多详情请参见Flink如何获取JSON数据。例如JSON格式的数据,直接用JSON format解析,会被解析成一个 ARRAY<ROW< cola VARCHAR, colb VARCHAR>> 字段,就是一个 Row类型的数组,其中这个Row类型包含两个VARCHAR字段,然后通过UDTF解析。

    {

    "data":[
    
        {
    
            "cola":"test1",
    
            "colb":"test2"
    
        },
    
        {
    
            "cola":"test1",
    
            "colb":"test2"
    
        },
    
        {
    
            "cola":"test1",
    
            "colb":"test2"
    
        },
    
        {
    
            "cola":"test1",
    
            "colb":"test2"
    
        },
    
        {
    
            "cola":"test1",
    
            "colb":"test2"
    
        }
    
    ]
    

    }

    2022-12-16 15:50:28
    赞同 展开评论
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    如果您需要获取普通JSON数据,方法详情请参见JSON Format。 如果您需要获取嵌套的JSON数据,则源表DDL中使用ROW格式定义JSON Object,结果表DDL中定义好要获取的JSON数据对应的Key,在DML语句中设置好Key获取的方式,就可以获取到对应的嵌套Key的Value值。参考文档:https://help.aliyun.com/document_detail/174840.htm

    2022-12-16 17:21:40
    赞同 展开评论