簡體   English   中英

使用Snowflake SQL解析JSON

[英]Parse JSON using Snowflake SQL

我有一個以奇怪的方式編寫的JSON對象。

> {"custom": [ { "name": "addressIdNum", "valueNum": 12345678},  {
> "name": "cancelledDateAt", "valueAt": "2017-02-30T01:43:04.000Z" }] }

不知道如何解析這樣的事情。 鍵是addressIdNum和cancelledDateAt,值分別為12345678和2017-02-30T01:43:04.000Z。

如何使用Snowflake SQL解析此問題?

感謝你的幫助!

最好的,Preet Rajdeo

如果您的輸入總是以這種形式(數組中的兩個元素,在同一元素中具有相同的字段),則可以組合PARSE_JSON函數和路徑訪問

試試這個:

with input as (
  select parse_json(
    '{"custom": [ { "name": "addressIdNum", "valueNum": 12345678},  {"name": "cancelledDateAt", "valueAt": "2017-02-30T01:43:04.000Z" }] }') 
  as json) 
select json:custom[0].valueNum::integer, json:custom[1].valueAt::timestamp from input;
----------------------------------+-----------------------------------+
 JSON:CUSTOM[0].VALUENUM::INTEGER | JSON:CUSTOM[1].VALUEAT::TIMESTAMP |
----------------------------------+-----------------------------------+
 12345678                         | 2017-03-01 17:43:04               |
----------------------------------+-----------------------------------+

但是,如果數據的結構可能不同(例如,數組中的元素可能的順序不同),最好在Snowflake中編寫一個JavaScript UDF,以便將這些混亂的數據轉換為更簡單的數據。

暫無
暫無

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

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