Apache Hop 没有丰富的 json 处理功能,因此我将数据推送到 postgres 来完成这项工作
对于深度嵌套的(下面的子集示例)json blob,如何展平然后存储结果?我将用 Hop 检索它并继续处理。最终的输出是csv。
就像是
更新 atable set flat_json = flatten(nested_json) where id = 1;
jq 的这个片段做到了,pg 相当于什么?
echo '[{"value": {
"id":"1",
"desc":"widget",
"colours":[{
"hue":"red",
"tint":"light"
},{
"hue":"green",
"tint":"light"
},{
"hue":"blue",
"tint":"dark"
}],
"isActive":true
}}]' | jq '[.[] |
[leaf_paths as $path | {"key": $path | join("_"), "value": getpath($path)}]
| from_entries]
'
result
[
{
"value_id": "1",
"value_desc": "widget",
"value_colours_0_hue": "red",
"value_colours_0_tint": "light",
"value_colours_1_hue": "green",
"value_colours_1_tint": "light",
"value_colours_2_hue": "blue",
"value_colours_2_tint": "dark",
"value_isActive": true
}
]
如果这是一个不优雅的想法,是否有一种简洁的方法将 json 推送到自动创建的列?(大约有 200 个)或者,将嵌套的 json 推送到由自动生成的外键链接的表集合(小部件、颜色等)?真实数据的嵌套比示例更深。