我有一个json文件,我正在尝试在雪花数据库中进行解析。 我可以解析除规则之外的所有节点。
我无法正确解析规则节点。 在节点下
"rules":{"540828":"Store_App_Fingerprint","576196":"App_email_domain"}
如果我缺少什么,请提供帮助。
文件结构就是这样。
{"country":"","auto":"R","orderNumber":"contraact123","language":"","rules":{"540828":"Store_App_Fingerprint","576196":"App_email_domain"},"deviceLayers":"...."
,"mode":"Q","score":"29","merchantId":"124300","vmax":"0","warningCount":0,"brand":"NONE","errorCount":0,"knowYourCustomer":"N","kaptcha":"N","counters":{},
"pcRemote":"","devices":"1""fingerPrint":""}
我尝试过的代码。
select v.pkey as pkey,
parse_json(v.content):country::string as country ,
parse_json(v.content):auto::string as auto ,
parse_json(v.content):orderNumber::string as orderNumber
,parse_json(v.content):language::string as language
,parse_json(v.content):rules::string as rules,
parse_json(v.content):App_email_domain::string as App_email_domain ,
parse_json(v.content):deviceLayers::string as deviceLayers
可能有人请分享您的专业知识。
答案 0 :(得分:0)
您提供的JSON几乎没有问题:
,
和devices
标签之间缺少fingerPrint
“设备”:“ 1”“指纹”:“”
您的rules
标签就像下面的
"rules": {
"540828":"Store_App_Fingerprint",
"576196":"App_email_domain"
}
如您所见,密钥是540828
和576196
,而不是Store_App_Fingerprint
和App_email_domain
。
如果您要访问rules.App_email_domain
,则需要按以下方式更改JSON:
"rules": {
"Store_App_Fingerprint":"540828",
"App_email_domain":"576196"
}
由于要选择嵌套元素,因此应使用.
表示法导航到特定字段。
例如
当前:parse_json(column1):App_email_domain::string as App_email_domain
已更新:parse_json(column1):rules.App_email_domain::string as App_email_domain
这是工作示例:
SELECT
parse_json(column1):country::string as country
, parse_json(column1):auto::string as auto
, parse_json(column1):orderNumber::string as orderNumber
, parse_json(column1):language::string as language
, parse_json(column1):rules::string as rules
, parse_json(column1):rules.App_email_domain::string as App_email_domain
, parse_json(column1):deviceLayers::string as deviceLayers
FROM VALUES
('{
"country": "",
"auto": "R",
"orderNumber": "contraact123",
"language": "",
"rules": {
"Store_App_Fingerprint": "540828",
"App_email_domain": "576196"
},
"deviceLayers": "....",
"mode": "Q",
"score": "29",
"merchantId": "124300",
"vmax": "0",
"warningCount": 0,
"brand": "NONE",
"errorCount": 0,
"knowYourCustomer": "N",
"kaptcha": "N",
"counters": {},
"pcRemote": "",
"devices": "1",
"fingerPrint": ""
}') v;
结果:
+---------+------+--------------+----------+----------------------------------------------------------------+------------------+--------------+
| COUNTRY | AUTO | ORDERNUMBER | LANGUAGE | RULES | APP_EMAIL_DOMAIN | DEVICELAYERS |
+---------+------+--------------+----------+----------------------------------------------------------------+------------------+--------------+
| | R | contraact123 | | {"App_email_domain":"576196","Store_App_Fingerprint":"540828"} | 576196 | .... |
+---------+------+--------------+----------+----------------------------------------------------------------+------------------+--------------+