重命名 JSON 中的属性

2023-12-10

你好,这是我的 json

{
 "name":'test',
 "options": {
    "Repartition": "Active",
    "Satellite": "No"
  }
}

我想用“s”重命名“卫星”中的“卫星”,但我没有成功。

我试过 :

UPDATE "Liaison" set content = content->>'options' - 'Satellite' || jsonb_build_object('Satellites', content->>'options'->'Satellite') where id =52056

但我有一个错误:

运算符不唯一:未知 - 未知

这是我的桌子:

    ID   |  content
  ---------------------
   52056 |  the json

->>返回元素为text,因此您失去了对其应用 JSON 运算符的能力。你需要使用->以 JSON 形式返回(子)元素并使用jsonb_set()改变options内容中的元素:

UPDATE "Liaison" 
   set content = jsonb_set(content, array['options'], 
                           (content -> 'options') - 'Satellite'||
                           jsonb_build_object('Satellites', content -> 'options' -> 'Satellite'))
where id = 52056;

The -然而,运算符仅适用于 JSONB,不适用于 JSON。因此,如果您的列确实是 JSON,则需要将中间结果转换为 JSONB。

网上例子:http://rextester.com/EXTS36112


另一种选择是使用jsonb_set()创建一个新元素并#-删除旧的。

UPDATE liaison 
   set content = jsonb_set(
                    content, 
                    array['options','Satellites'], 
                    (content #> array['options','Satellite']), true
                 ) #- array['options','Satellite']
where id = 52056;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重命名 JSON 中的属性 的相关文章

随机推荐

  • X 轴和 Y 轴相交于 0 [重复]

    这个问题在这里已经有答案了 我使用以下代码来生成此图 x lt c 0 916 0 815 0 101 0 029 0 166 0 949 0 073 0 054 1 006 y lt c 3 91 5 17 1 08 1 28 1 01
  • LINQ Take() 反复返回相同的结果

    我想翻阅一些记录 但是Take 延伸自LINQ没有返回我预期的结果 public IQueryable
  • Grails Log4j DSL 配置中的 Log4j 过滤器

    有没有办法指定 log4j 过滤器Grails log4j DSL配置 我需要在 Grails log4j 配置中定义类似的内容
  • 如何防止 gdb 在下一个命令后停止

    我正在尝试定义一个命令链 该命令链将在 gdb 中的断点之后调用 break some function commands up next printf some string continue end 在这种情况下 例如 我想在 some
  • 将复选框添加到 PHP POST 电子邮件表单

    我正在尝试为 WordPress 构建一个表单 我过去使用过插件 但我需要对某些特定样式进行最大程度的控制 我还不太擅长 PHP 所以正在努力尝试向脚本添加复选框 我已经删除了我的尝试并将复选框留在了 html 中 但不在 PHP 中 有人
  • SQL命令插入中文字母

    我有一个数据库 其中有一列 nvarchar 类型 如果我写 INSERT INTO table VALUES 玄真 表明 在表中 我应该怎么办 我正在使用 SQL 开发人员 使用单引号而不是双引号来创建文本文字并用于NVARCHAR2 N
  • 在 for 循环中写入 .csv

    我想在 for 循环中写入 csv 文件 假设我有一个数据框data为了简单起见 有 3 行变量x 最后 我希望输出为 200 个 csv 文件 每个文件包含一行数据 数据的第一列是我的变量的标识 ID 此外 我的数据描述如下 data I
  • JavaScript通过数组中的循环设置时间差

    我尝试使用 JavaScript 中的循环将值存储在数组中 它只对我部分有效 我想将时间存储在数组中 会有startTime endTime和一个间隔 例如 如果想获取9 00到10 00之间的时间 间隔为15分钟 应该打印 09 00 0
  • Java:为什么大正数相乘会导致负结果? [复制]

    这个问题在这里已经有答案了 我看到一些用 Java 进行整数相乘的奇怪行为 我正在做一些编码练习 并发现了以下嘶嘶声类型的练习 要求 给定一个整数 编写一个函数 找出小于给定整数的每个 3 的倍数的乘积 except5 的任意倍数 例如 给
  • async/await whenall 立即返回

    我有这个 简单 测试代码 不要打扰类方法的奇怪使用 我正在努力抓住Task lt gt 错综复杂 我想我有点了解Task lt gt Start Task lt gt Result模式 也许因为它更像 旧 Thread Start 但是一旦
  • 在 python 中动态生成变量名称[重复]

    这个问题在这里已经有答案了 有没有办法可以在 python 中循环生成变量名并为其赋值 例如 如果我有 prices 5 12 45 I want price1 5 price2 12 price3 45 我可以在循环或其他方式中执行此操作
  • 如何在没有窗口的情况下将图像直接传输到屏幕?

    如何显示 PNG BITMAP JPEG 文件等中的图像 在没有窗口的屏幕上 我希望图像出现时周围没有框架 最好不要将其作为窗口注册在任务栏上 我想将这些图像快速连续地显示在屏幕上 如果它与 Windows XP 和 Windows 7 兼
  • jQuery 属性名称包含

    我正在尝试定位包含某个单词的属性名称 而不是以您所想的方式 可以说我有 div div 我如何定位具有 data foo 在属性名称中 我认为您不能像定位属性值一样定位属性名称 但是 您可以使用 filter 有效地做到这一点 div fi
  • 选择一系列嵌套元素的每隔一个元素(每个元素只有一个子元素)[重复]

    这个问题在这里已经有答案了 是否存在每秒定位一次的 css 选择器 letter 当然 我可以把所有 letter位于同一级别并使用的元素 nth child 2n 但它们都取决于前一个字母的位置 所以我需要嵌套 firstname pos
  • 填充前一列中的空白单元格 pandas python

    如果我有一个简单的数据框 例如 q 1 q 1 mark q 2 q 2 mark TRUE a 1 c FALSE b 2 TRUE c 3 如何填写 q 2 mark 列的空白值 以便它们与 q 1 mark 匹配 所以步骤是 查看该列
  • UWP 的“Add-DevAppPackage”Powershell 脚本检查开发人员许可证。这是侧面加载的问题吗?

    我正在开发一个 LOB 业务线 UWP 项目 我们希望将该应用程序作为 appxbundle文件 旁边是 cer和一个 Powershell 脚本 这是当您通过选择从 Visual Studio 生成捆绑包时在包中生成的内容Project
  • VS Code 终端打开,然后崩溃并在按终止按钮后消失

    在 VS Code 中单击 终止终端 后出现此错误 无法解析您的 shell 环境 生成的 shell 出现意外的退出代码 代码为 null 信号 SIGSEGV 现在 当我单击 终端 新终端 时 我的 VSCode 会执行此操作 它打开窗
  • CUDA 流销毁和 CudaDeviceReset

    我已经使用 CUDA 流实现了以下类 class CudaStreams private int nStreams cudaStream t streams cudaStream t active stream public default
  • 获取范围相对于其父容器的开始和结束偏移量

    假设我有这个 HTML 元素 div Hello everyone a This is my home page a p Bye p div 用户用鼠标选择 home 我希望能够确定有多少个字符 parent他的选择开始 以及从末尾开始有多
  • 重命名 JSON 中的属性

    你好 这是我的 json name test options Repartition Active Satellite No 我想用 s 重命名 卫星 中的 卫星 但我没有成功 我试过 UPDATE Liaison set content