PGsql 解析json及json数组

创建测试数据

drop table if exists json_test;
create table json_test as
select
'111' as id,
'{"nodes":{"1692328028076":{"nodeId":"1692328028076","nodeName":"测试表1","nodeType":"DATACOLLECT","nodeConfig":{"nodeName":"测试表1","retryTimes":3,"configNoId":"1691325111866490880","configNo":"1691325111866490880","iocNo":"","id":"1692328028076"}},"1692328056195":{"nodeId":"1692328056195","nodeName":"测试表2","nodeType":"DATASYNC","nodeConfig":{"nodeName":"测试表2","retryTimes":3,"configNoId":"1691324890486931456","configNo":"1691324890486931456","iocNo":"","id":"1692328056195"}},"1692340398058":{"nodeId":"1692340398058","nodeName":"测试表3","nodeType":"HIVESQL","nodeConfig":{"nodeName":"测试表3","retryTimes":3,"configNoId":"1691324637188718592","configNo":"1691324637188718592","iocNo":"","id":"1692340398058"}}},"linkList":[{"name":"polyline","id":"258b0971","toId":"1699601569911","fromId":"1692340398058"},{"name":"polyline","id":"ac3c907","toId":"4db01ba","fromId":"1692340417936"},{"name":"polyline","id":"3db3281f","toId":"f57d111","fromId":"1692328056195"}]}'
 as json_data
union all
select
'222' as id,
'{"nodes":{"1692328028076":{"nodeId":"1692328028076","nodeName":"测试表4","nodeType":"DATACOLLECT","nodeConfig":{"nodeName":"测试表4","retryTimes":3,"configNoId":"1691325111866490880","configNo":"1691325111866490880","iocNo":"","id":"1692328028076"}},"1692328056195":{"nodeId":"1692328056195","nodeName":"测试表5","nodeType":"DATASYNC","nodeConfig":{"nodeName":"测试表5","retryTimes":3,"configNoId":"1691324890486931456","configNo":"1691324890486931456","iocNo":"","id":"1692328056195"}},"1692340398058":{"nodeId":"1692340398058","nodeName":"测试表6","nodeType":"HIVESQL","nodeConfig":{"nodeName":"测试表6","retryTimes":3,"configNoId":"1691324637188718592","configNo":"1691324637188718592","iocNo":"","id":"1692340398058"}}},"linkList":[{"name":"polyline","id":"258b0971","toId":"1699601569911","fromId":"1692340398058"},{"name":"polyline","id":"22ac3c907","toId":"224db01ba","fromId":"22692340417936"},{"name":"polyline","id":"223db3281f","toId":"22f57d111","fromId":"221692328056195"}]}'
 as json_data

数据展示

select
id,
json_data :: json -> 'nodes' as nodes,
json_each(json_data :: json -> 'nodes') as each_nodes
from
json_test

问题一

查询出nodes中nodeConfig对应的key和value

select 
id,
nodes::json->'nodeId' as nodeId,
nodes::json->'nodeType' as nodeType,
nodes::json->'nodeName' as nodeName,
replace(json_each(nodes::json->'nodeConfig')::varchar,'""','') as nodeConfig,
replace(regexp_replace(replace(json_each(nodes::json->'nodeConfig')::varchar,'""','')::varchar,',.*$','',''),'(','') as nodeconfig_key,
replace(replace(regexp_replace(replace(json_each(nodes::json->'nodeConfig')::varchar,'""','')::varchar,'^([^,]*,)','',''),'"""',''),')','') as nodeconfig_value

from 
(
select
id,
replace(substring(regexp_replace(each_nodes :: varchar, '^([^,]*,)', '')
from 2 for length(regexp_replace(each_nodes :: varchar, '^([^,]*,)', '')) -3),'""','"') as nodes
from
(
select
id,
json_each(json_data :: json -> 'nodes') as each_nodes
from
json_test
) t
) t

问题二

查询出linkList中的fromId和toId

select
id,
json_array_elements(json_data :: json -> 'linkList') as linkList,
json_array_elements(json_data :: json -> 'linkList')->'fromId' as fromId,
json_array_elements(json_data :: json -> 'linkList')->'toId' as toId
from
json_test

相关推荐

  1. Qt解析json格式数据

    2024-01-29 23:54:04       16 阅读
  2. mysql 截取字符串解析json

    2024-01-29 23:54:04       19 阅读
  3. Unity数据解析Json、XML、CSV、二进制)

    2024-01-29 23:54:04       34 阅读
  4. C# Newtonsoft.Json解析json笔记

    2024-01-29 23:54:04       26 阅读
  5. 使用 mapstructure 解析 json

    2024-01-29 23:54:04       20 阅读
  6. python 解析json

    2024-01-29 23:54:04       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-29 23:54:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-29 23:54:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-29 23:54:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-29 23:54:04       18 阅读

热门阅读

  1. 假期刷题打卡总结--2

    2024-01-29 23:54:04       33 阅读
  2. 《动手学深度学习(PyTorch版)》笔记5

    2024-01-29 23:54:04       27 阅读
  3. 深入理解 HashMap

    2024-01-29 23:54:04       31 阅读
  4. 牛客周赛 Round 30(A~E)

    2024-01-29 23:54:04       31 阅读
  5. 2、数据缩放和标准化

    2024-01-29 23:54:04       23 阅读
  6. 鸿蒙自定义组件内自定义构建函数

    2024-01-29 23:54:04       38 阅读
  7. 中国的文化是否是丛林文化?

    2024-01-29 23:54:04       39 阅读