使用Snowflake SQL解析JSON
我有一个JSON对象,它是以一种奇怪的方式编写的使用Snowflake SQL解析JSON,sql,json,snowflake-cloud-data-platform,Sql,Json,Snowflake Cloud Data Platform,我有一个JSON对象,它是以一种奇怪的方式编写的 > {"custom": [ { "name": "addressIdNum", "valueNum": 12345678}, { > "name": "cancelledDateAt", "valueAt": "2017-02-30T01:43:04.000Z" }] } 不知道如何解析这样的内容。键为addressIdNum和cancelledDateAt,值分别为12345678和2017-02-30T01:43:04.00
> {"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如果您的输入始终是这种形式(数组中的两个元素,同一元素中的相同字段),则可以将函数和 试试这个:
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,以便将这些混乱的数据转换为更简单的数据。如何编写JavaScript UDF?您在手册中看过了吗?