相关疑难解决方法(0)

在Postgres中收集递归JSON密钥

我在JSON数据类型(Postgres 9.3)下存储了Postgres中的JSON文档,我需要以递归方式从树中收集密钥名称.

例如,给定这个JSON树

{
 "files": {
  "folder": {
   "file1": {
    "property": "blah"
   },
   "file2": {
    "property": "blah"
   },
   "file3": {
    "property": "blah"
   },
   "file4": {
    "property": "blah"
   }
 }
},
"software": {
  "apt": {
    "package1": {
        "version": 1.2
    },
    "package2": {
        "version": 1.2
    },
    "package3": {
        "version": 1.2
    },
    "package4": {
        "version": 1.2
    }
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

我想提取类似[file1,file2,file3,file3,package1,package2,package3,package4]的东西

基本上只是我可以用于文本搜索索引的键列表.

我知道我可以使用类似的东西获得最外层对象的键列表

SELECT DISTINCT(json_object_keys(data))
Run Code Online (Sandbox Code Playgroud)

而且我知道可以用类似的东西递归地爬过树

WITH RECURSIVE data()
Run Code Online (Sandbox Code Playgroud)

但我把两者放在一起很麻烦.

有人可以帮忙吗?

postgresql recursion json

6
推荐指数
2
解决办法
3921
查看次数

标签 统计

json ×1

postgresql ×1

recursion ×1