蜂巢:解析 JSON 包含 \"

Posted

技术标签:

【中文标题】蜂巢:解析 JSON 包含 \\"【英文标题】:hive: parsing JSON contain \"蜂巢:解析 JSON 包含 \" 【发布时间】:2019-01-21 11:59:25 【问题描述】:

我的 JSON 数据是:

 
    "content":"\"type\":3,\"from\":\"home\"",
    "id":"239",
    "idtype":"0",
    "timestamp":"1547957367281",
    "type":"0"

我想把它放到下面格式的表 json_data 中:

+-------------+  
| from        |  
+-------------+  
| home        |  
+-------------+

如何使用这里的explode 函数来获得所需的输出?

【问题讨论】:

【参考方案1】:

您可以使用 regexp_replace 删除 \,也可以在 之前和 之后删除 "。使用get_json_object 或json_tuple 提取属性。在您的数据示例上进行测试:

select get_json_object(json,'$.content.from') as `from`
from
(
select
regexp_replace(
regexp_replace(
regexp_replace(
'"content":"\"type\":3,\"from\":\"home\"",
    "id":"239",
    "idtype":"0",
    "timestamp":"1547957367281",
    "type":"0"
'               --original data
,'\\\"','\"')    --replace \" with "
,'\\"\\','')   --remove " before 
,'\\\\"','\\') --remove " after  --these last two can be combined
as json
)s
;

输出:

OK
from
home
Time taken: 0.329 seconds, Fetched: 1 row(s)

最好一一检查这些 regexp_replaces 以确保它按预期工作。希望你明白了

【讨论】:

以上是关于蜂巢:解析 JSON 包含 \"的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中解析 JSON 时 Json.decode 挂起

如何在 Node.js 中解析包含“NaN”的 JSON 字符串

Azure 逻辑应用 - 解析 JSON 架构失败“对象中缺少必需的属性”

json的解析

C++ json解析

Python-将多层 API JSON 解析为 CSV 的问题