[英]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.