Snowflake 中的嵌套 JSON blob

问题描述 投票:0回答:1

我正在尝试查询 MyTable 中以下为 varchar 的 JSON Blob,但是,JSONBlob2 在大括号上有方括号,这似乎干扰了我的查询:

我的桌子

JSONBlob JSONBlob2
{“a”:“12345”,“b”:{“c”:“567”,“d”:“llc”} } {"e": [{"f":"321", "g":"432}] "h": [{"i":"沙发", "j":"沙发"}] }
{“a”:“6789”,“b”:{“c”:“999”,“d”:“col”} } {"e": [{"f":"765", "g":"444}] "h": [{"i":"床", "j":"毯子"}] }

到目前为止我所尝试的方法没有返回 JSONBlob2 的结果:

select jb:e:f::text f, jb:h:i::text h
  from (select PARSE_JSON(JSONBlob2) jb
          from myTable)

希望得到这种格式的结果:

f
321 沙发
765
json snowflake-cloud-data-platform blob
1个回答
0
投票

jsonblob2
中的JSON无效,假设无效来自您输入“假数据”以保护您的真实数据,那么我们可以通过数组索引访问它:

with data(JSONBlob2) as (
    select * from values
    ( '{"e": [{"f":"321", "g":"432"}], "h": [{"i":"couch", "j":"sofa"}] }'),
    ( '{"e": [{"f":"765", "g":"444"}], "h": [{"i":"bed", "j":"blanket"}] }')
)
select
    try_parse_json(JSONBlob2):e[0]:f::text as f
    ,try_parse_json(JSONBlob2):h[0].i::text as i
from data

我很懒,没有像 demircioglu 那样使用嵌套的 try_parse_json 。

© www.soinside.com 2019 - 2024. All rights reserved.