微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 AWS Athena 中解析 Json?

如何解决如何在 AWS Athena 中解析 Json?

我想在 Athena 中解析 JSON 列,但我在某一列中遇到了问题。该列包含一个转义字符。不知道有没有这个问题。我想联系消息。您可以在返回下看到以下示例数据和消息。谢谢

Sample Code 
CAST(json_extract_scalar(callparameters,'$return.Message') AS VARCHAR) AS Message

这是 JSON。

{"inputs":{"usagespecid":"null","playsessionid":"null","satellitetypecd":"\"ERU\"","channelcontentid":"231"},"return":"{\"Message\":\"Do not person you have called \"}"}    {"date":"2021-07-26","epoch":"1627"}    {"userpartyid":"23","userloginkey":"23","usercountrycode":"br","sessionkey":"23","client":{"name":"SMR","id":"1"},"usermainsatellitetype":"DS","userserviceaccountids":["23"],"usergeolocationid":"53","userpartyroleid":"76"}

解决方法

如果只取包含 return 的对象,则可以使用 json_parsereturn 解析为 json,因为它包含编码字符串而不是 json 对象:

WITH dataset AS (
    SELECT * FROM (VALUES          
       (JSON '{
   "inputs":{
      "usagespecid":"null","playsessionid":"null","satellitetypecd":"\"ERU\"","channelcontentid":"231"
   },"return":"{\"Message\":\"Do not person you have called \"}"
}')
 ) AS t (json_string))


SELECT json_extract_scalar(json_parse(json_extract_scalar(json_string,'$.return')),'$.Message')
FROM dataset

输出:

_col0
不要找你打电话的人

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。