在 Postgres 中获取 JSON 字段键名

褪色蜂

我有使用 JSON 作为标记联合的数据,这样顶级对象只包含一个子对象。子对象的类型取决于它在父对象中的键名,而不是一个单独的“标签”字段,这在 C 结构中是正常的。

例如

{"circle":{"radius":10}}
{"square":{"side":10}})
{"rectangle":{"width":10,"height":20}})

这对 JSON 模式和协议缓冲区非常有效。

我已阅读:https : //www.postgresql.org/docs/9.6/static/functions-json.html

我正在努力使用 Postgres 的 JSON 函数。如何执行以下 Javascript 的 SQL 等效项

Object.keys({"circle":{"radius":10}})[0]               (== `"circle")
Object.keys({"square":{"side":10}})[0]                 (== `"square")
Object.keys({"rectangle":{"width":10,"height":20}})[0] (== `"rectangle")

带有 JSONB 字段?

马丁·坎贝尔

有一个jsonb_object_keys你可以使用它就像它的 Javascript 对应物。例如:

SELECT jsonb_object_keys(json_column)
FROM MyTable

这显然返回了一个记录集。但是,如果您知道 JSON 对象中永远只有一个键,那么如果需要,只需将其用作子查询即可。例如:

SELECT *
FROM MyTable
WHERE 'cicle' = (
  SELECT jsonb_object_keys(json_column)
  FROM MyTable
)

编辑

您可以获得如下标量值:

SELECT json_build_array(jsonb_object_keys(json_column)) -> 0
FROM MyTable

请注意,这是 json(即"circle",不是circle)。如果需要文本值,请使用->>运算符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 JSON 中获取键名

来自分类Dev

使用 spring boot 动态更改 JSON 中字段的键名

来自分类Dev

在Postgres中获取JSON字段的数据类型

来自分类Dev

在Postgres中更新json字段

来自分类Dev

在Postgres中更新json字段

来自分类Dev

在postgres json字段中查询json键

来自分类Dev

在postgres json字段中查询json键

来自分类Dev

在Postgres中将密钥获取到JSON字段

来自分类Dev

在Rails中查询Postgres JSON数组字段

来自分类Dev

如何从php的结果中获取json键名?

来自分类Dev

修改 Postgres JSON 字段中符合条件的所有字段

来自分类Dev

如何获取postgres中的字段数?

来自分类Dev

获取重复的键名json jquery

来自分类Dev

在Rails 3.2中修改Postgres JSON字段时出错

来自分类Dev

按 ruby Sequel/Postgres 中的 json 字段排序

来自分类Dev

Android:从JSON动态获取JSON数组键名

来自分类Dev

获取Postgres NOSQL json数据中json数组的总和

来自分类Dev

json-c中的键名

来自分类Dev

检查嵌套JSON中的键名

来自分类Dev

json键名中的双点

来自分类Dev

检查嵌套json中的键名

来自分类Dev

从postgres中的json数组列中获取结果

来自分类Dev

在postgres中查询json

来自分类Dev

查询Postgres以获取JSON中的项目数

来自分类Dev

如何从Postgres的JSON列中获取所有密钥?

来自分类Dev

查询Postgres以获取JSON中的项目数

来自分类Dev

如果JSON数据的数据键名称中包含“ /”,如何在javascript中获取json数据

来自分类Dev

如何使用 postgres 在 Django 中获取数组字段数据

来自分类Dev

将JSON解组到Postgres的数据库JSON字段中