簡體   English   中英

如何在雪花中解析這個 JSON 文件?

[英]How to parse this JSON file in Snowflake?

因此,我在存儲 JSON 數據的 Snowflake 表中有一個列,但該列是 varchar 數據類型。

JSON 看起來像這樣:

{   
    "FLAGS": [],   
    "BANNERS": {},   
    "TOOLS": {     
            "game.appConfig": {       
              "type": [         
                "small",       
                 "normal",        
                  "huge"
              ],      
              "flow": [         
                "control",       
                "noncontrol"
            ]   
        }  
    },   
    "PLATFORM": {} 
}

我只想過濾 TOOLS 中的數據,並希望得到以下結果:

TOOLS_ID 工具
游戲.appConfig 類型
游戲.appConfig 流動

我怎樣才能做到這一點?

我假設 TOOL 可以有多個工具 ID,因此我編寫了以下查詢:

with mydata as ( select
'{
    "FLAGS": [],   
    "BANNERS": {},   
    "TOOLS": {     
            "game.appConfig": {       
              "type": [         
                "small",       
                 "normal",        
                  "huge"
              ],      
              "flow": [         
                "control",       
                "noncontrol"
            ]   
        }  
    },   
    "PLATFORM": {} 
}' as v1 )
select main.KEY TOOLS_ID, sub.KEY TOOLS
from mydata,
lateral flatten ( parse_json(v1):"TOOLS" ) main,
lateral flatten ( main.VALUE ) sub;

+----------------+-------+
|    TOOLS_ID    | TOOLS |
+----------------+-------+
| game.appConfig | flow  |
| game.appConfig | type  |
+----------------+-------+

假設列名是 C1,表名是 T1:

select a.t:"TOOLS":"game.appConfig"::string from (select 
parse_json(to_variant(C1))t from T1) a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM