digoal / blog

OpenSource,Database,Business,Minds. git clone --depth 1 https://github.com/digoal/blog

Home Page:https://github.com/digoal/blog/blob/master/README.md

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请教pgsql的json解析类问题

yansheng836 opened this issue · comments

需求:(以查询or函数的方式)取json字段其中的数组的部分属性组成的数组,比如原来有3个属性,我只需要返回其中的2个即可(注:而且每层的数组的长度不定)。

ps: 因为之前用到的json相关的知识都比较少,内容也比较浅,因此遇到这种需求感觉难于下手,网络上找了挺久的资料,感觉好像都没有类似的解决方法。

借此平台想请教下各位大佬该如何处理,给个建议也行,比如该如何实现、能不能实现。

先谢过了。🌹

案例1:

字段数据:
[[{"key1": 8, "key2": 1, "key3": 1}, {"key1": 8, "key2": 1, "key3": 1}]]

即:

[
    [
        {
            "key1": 8,
            "key2": 1,
            "key3": 1
        },
        {
            "key1": 8,
            "key2": 1,
            "key3": 1
        }
    ]
]

需要返回:
[[{"key1": 8, "key2": 1}, {"key1": 8, "key2": 1}]]

即:

[
    [
        {
            "key1": 8,
            "key2": 1
        },
        {
            "key1": 8,
            "key2": 1
        }
    ]
]

案例2:

字段数据:
[[{"key1": 8, "key2": 1, "key3": 1}, {"key1": 8, "key2": 1, "key3": 1}],[{"key1": 8, "key2": 1, "key3": 1}]]

即:

[
    [
        {
            "key1": 8,
            "key2": 1,
            "key3": 1
        },
        {
            "key1": 8,
            "key2": 1,
            "key3": 1
        }
    ],
    [
        {
            "key1": 8,
            "key2": 1,
            "key3": 1
        }
    ]
]

需要返回:

[[{"key1": 8, "key2": 1}, {"key1": 8, "key2": 1,}],[{"key1": 8, "key2": 1}]]

即:

[
    [
        {
            "key1": 8,
            "key2": 1
        },
        {
            "key1": 8,
            "key2": 1
        }
    ],
    [
        {
            "key1": 8,
            "key2": 1
        }
    ]
]

unnest json 去重后再组装