PostgreSQL中的json解析

2023-05-16

  • 1、PostgreSQL json 数组解析
-- INSERT INTO "dwd"."dwd_test"(id, cname, is_deleted)
-- 数据格式为:[{}, {}, ...]
-- 字典的 key='value'
-- cnames 为需要解析的字段
SELECT 
	id,
	(CASE 
		WHEN cnames LIKE '%}]' 
		THEN json_array_elements(REPLACE(cnames, '\u0000', '')::json)->>'value' 
	END) AS cname,
	is_deleted
from 
	"ods"."ods_test"
WHERE
	is_deleted='f'
  	AND cnames LIKE '%}]'

注意:::json也可以用json(xxx)代替

  • 2、MySQL json 数组解析
-- [{}, {}, ...]
-- 用json_unquote函数去掉双引号,而不是replace,哪种更优雅一目了然。但是我认为 ->> 最优雅。
SELECT json_unquote(json_extract( a, '$[0]."text"' ))  AS b FROM `table_name` WHERE id=424;
SELECT json_unquote(json_extract( a, '$[*]."text"' ))  AS b FROM `table_name` WHERE id=424;
SELECT a ->> '$[0].text' AS b FROM `table_name` WHERE id=424;
SELECT a ->> '$[*].text' AS b FROM `table_name` WHERE id=424;
SELECT REPLACE(a ->> '$[*].text','\",\",','')  AS b FROM `table_name` WHERE id=424;
  • PostgreSQL 取json的第一个元素
假设要解析的json字段名为json_field
若json_field格式为:[[10], [20, 30]]
SELECT json_field -> 0;

若json_field格式为:[{'key': value}]
SELECT json_field -> 0 ->>'key' FROM table_name;

PostgreSQL JSON字段的 ->> #>> 取值操作

SELECT
data#>>‘{_id, $oid}’ as trace_id,
cast(data#>>‘{cid, $numberLong}’ as int8) as cid,
cast(data#>>‘{sid, $numberLong}’ as int8) as sid,
cast(data#>>‘{percent, $numberDecimal}’ as numeric(40, 10)) as percent,
cast(data->>‘is_deleted’ as bool) as is_deleted
FROM “ods”.“ext_ods_mongo_t_xxxt”;

– 测试发现第一层是json,第二层是text。
select data, pg_typeof(data) FROM “ods”.“ext_ods_mongo_t_xxx” limit 1;
select data, pg_typeof(data->>‘_id’) as _id FROM “ods”.“ext_ods_mongo_t_xxx” limit 1;
#>>表示获取指定路径的一个JSON对象的字符串
SELECT data#>>‘{_id, $oid}’ as trace_id

https://blog.csdn.net/wangzhi291/article/details/102485976

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL中的json解析 的相关文章

  • PostgreSQL 中“-”处或附近的语法错误

    我正在尝试运行查询来更新用户密码 alter user dell sys with password Pass 133 但因为 它给了我这样的错误 ERROR syntax error at or near LINE 1 alter use
  • BigQuery 如何获取 JSON 结构中的值的总和?

    我有以下查询 SELECT JSON EXTRACT json Weights as weight from select Weights blue 1 0 purple 0 0 yellow 1 0 green 1 0 as json 返
  • 在Unity游戏中保存数据的最佳方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道 在 Unity 游戏中保存数据的最佳方式是什么 JSON 如果是这样 怎么办 谢谢 以下是一些不同的方式和方法保存 Unit
  • 在 Django 模板中通过键访问字典

    我正在将字典从我的视图传递到模板 所以 key1 value1 key2 value2 传入并循环键 值对很好 但是我还没有找到从特定键直接在视图中访问的优雅解决方案 例如 key1 例如 bu json items key1 我可以使用一
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 在没有 NAN 的情况下将 pandas DF 转换为 JSON

    我有一个 DF 看起来像 A B C D E 1 1 NaN 1 1 NaN 2 3 4 NaN 当我做 df to json orient records 我得到类似的东西 A 1 B 1 C null D 1 E 1 A null B
  • 获取两行之间不同的列

    我有一张桌子company有 60 列 目标是创建一个工具来查找 比较和消除该表中的重复项 示例 我发现 2 家公司可能相同 但我需要知道这两行之间哪些值 列 不同才能继续 我认为可以逐列比较 x 60 但我寻找更简单 更通用的解决方案 就
  • Jackson 为什么我需要在子类上使用 JsonTypeName 注释

    At 这个链接 https github com Sergey80 scala samples blob master src main scala json jackson SubClasses scala 我试图理解why我 可能 需要
  • 如何使用 tqdm 实现 JSON 文件加载进度条?

    我正在编写一个用于 JSON 文件处理的 Python 脚本 它基本上分为三个过程 加载 编码和打印 虽然我已经使用 tqdm 轻松创建了用于编码和打印的进度条 但我不知道如何进行加载 我已经彻底阅读了 tqdm 文档 甚至在这里进行了搜索
  • 有什么方法可以加快 Postgres 位图堆扫描速度吗?

    这里是数据库新手 这是我的查询 我使用的是 Postgres 9 3 5 explain analyse SELECT SUM actual cost as cost SUM total items as num items process
  • Pinterest 身份验证 url 返回 404 错误?

    我正在测试 pinterest apihttp pinterest com developers api http pinterest com developers api 在上面的身份验证部分的网址上 它说我必须将用户重定向到 pinte
  • Docker 容器在运行或重新启动 PostgreSQL 镜像后立即退出

    我是 docker 的初学者 由于容器重新启动问题 我陷入困境 当我尝试重新启动现有退出的容器或创建新容器 删除旧容器后 运行时 会出现问题 docker run d name mempostgres v home lukasz lc pg
  • 读取google地图返回的JSON数据

    在我的应用程序中 我使用 BlackBerry API 来获取纬度和经度 我想通过创建 http 连接使用 Google 地图进行反向地理编码 如何解析数据 然后读取特定元素 例如地址 示例网址 给出回应 name 9 600000 76
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • PostgreSQL ST_AsMVT 到 VectorTiles 到 Leaflet 层

    我正在尝试从 PostgreSQL 数据库创建矢量切片 并通过 Flask 将它们提供给 Leaflet 地图 我已经关注了这个medium com 文章 https medium com tantotanto vector tiles p
  • 错误:无法访问文件“$libdir/plpython2”:没有这样的文件或目录

    我正在运行 postgresql 9 4 PostgreSQL 9 4 4 on x86 64 unknown linux gnu compiled by gcc GCC 4 1 2 20070626 Red Hat 4 1 2 14 64
  • 使用 CouchDB 提供 HTML 服务

    我正在尝试将 CouchDB 与 HTML 独立 REST 架构一起使用 也就是说 除了 CouchDB 和 ajax 风格的 javascript 调用 CouchDB 之外 没有其他应用程序服务器 看起来交叉脚本是一个问题 我之前使用过
  • Polymer core-ajax 不会发布 JSON?

    我正在使用 core ajax 来检索 JSON 数据 将组件翻转为 JSON 格式回传到服务器则完全是另一回事 在所有情况下 无论传入的 contentType 或 handleAs 参数如何 作为输入传入的 JSON 对象似乎都会被转换
  • C 中的等效 plpgsql 触发器

    我有一个 PostgreSQL 9 0 服务器 并且在某些表上使用继承 因此我必须通过如下触发器模拟外键 CREATE OR REPLACE FUNCTION othertable before update trigger RETURNS

随机推荐

  • 搭建GitLab+Jenkins持续集成环境图文教程

    GitLab是一个代码仓库 xff0c 用来管理代码 Jenkins是一个自动化服务器 xff0c 可以运行各种自动化构建 测试或部署任务 所以这两者结合起来 xff0c 就可以实现开发者提交代码到GitLab xff0c Jenkins以
  • threejs-经纬度转换成xyz坐标的方法

    用threejs做3D应用时 xff0c 很经常会接触到球状物体 xff0c 比如说地球 xff0c 要定义球上的一点 xff0c 用经纬度是常用的办法 现在 xff0c 我们要在北京这个地方标一个点 xff0c 北京的坐标为 北纬39 9
  • HTML5 响应式图片

    现在上网设备越来越多 xff0c 各种设备的屏幕千差万别 xff0c 如果只用一张图片去涵盖所有的设备 xff0c 一是可能会造成某些设备上显示效果不佳 xff0c 比如使用了一张低清晰度的图 xff0c 而网页运行在一个高清大屏里 xff
  • 使用EventBus通讯不成功

    最近在开发一个直播app的项目 xff0c 遇到一个需求是当用户点击 退出登录 这个操作时 xff0c 回到登录界面 xff0c 让用户重新登录 这个需求实现起来一点都不难 xff0c 不就是点击退出登录后 xff0c Intent到Log
  • 怎么使用CTreeListCtrl

    代码路径 xff1a http www codeproject com KB tree ctreelistctrl aspx 1 怎么在CTreeListCtrl中使用edit或者combobox 例如双击修改某个item 重载OnLBut
  • android backtrace实现

    前景 backtrace 文档 说明 通过数组获取调用栈 一般获取的是内存地址 借助dladdr获取地址信息 计算可执行文件中的偏移地址 实现 有的没有实现backtrace但是大多都支持unwind 利用unwind实现类似 backtr
  • 【详细教程】阿里云ECS服务器搭建

    一 服务器搭建的网址入口 xff1a 如果您之前没有用过 xff0c 恭喜您 xff0c 是有试用资格的 有试用资格 xff1a 点击进入阿里云云产品试用中心 xff0c 选择下图产品 xff0c 点击试用30天 如果未注册 xff0c 需
  • Matlab绘图-详细,全面(二维&三维等)

    原文 Matlab绘图 xff08 图像为本人所绘 xff09 强大的绘图功能是Matlab的特点之一 xff0c Matlab提供了一系列的绘图函数 xff0c 用户不需要过多的考虑绘图的细节 xff0c 只需要给出一些基本参数就能得到所
  • SpotBugs-IDE插件扫描

    安装 在 Intellij IDE 的Plugins中搜索 SpotBugs 并 安装 设置 打开IDE Settings xff0c 选择 Tools SpotBugs 根据实际情况进行配置 比如选择分析投入 xff0c 分析等级 xff
  • 【C语言】vsnprintf函数的使用

    标题 C语言 vsnprintf函数的使用 提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 标题 C语言 vsnprintf函数的使用前言一 vsnprintf是什么 xff1
  • [python]编写程序产生 ISBN 号的校验位。

    64 MADE BY YWL XJTU python编写程序产生 ISBN 号的校验位 编写程序产生 ISBN 号的校验位 任何新出版的图书都配有 ISBN 号 xff0c 2007 年以前是由 10 位数字加上3个连字符组成的 ISBN
  • python基于内置模块smtplib、email实现163邮箱发送邮件(附完整代码,可直接使用)

    一 获取发送者163邮箱授权密码 第一步 登录邮箱 https mail 163 com 第二步 点击右上角切换回旧版 新版实在没找到在哪 第三步 打开 POP3 SMTP IMAP 设置 第四步 开启POP3 SMTP 服务 第五步 拿到
  • 极速配置VScode C++运行环境

    VScode 极速配置C 43 43 环境及必备插件 Visual Studio Code 简称 VS Code VSC 是一款免费开源的现代化轻量级代码编辑器 xff0c 支持几乎所有主流的开发语言的语法高亮 智能代码补全 自定义热键 括
  • 题目49:输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。

    题目转载 xff1a http python wzms com s 1 42 题目描述 输入两个正整数 m 和 k xff0c 其中1 lt m lt 100000 xff0c 1 lt k lt 5 xff0c 判断 m 能否被19整除
  • Linux 监控网络流量

    文章目录 bmoniftopnethogs bmon sudo apt get install bmon 通过 选择网卡 xff1b 输入 g 控制流量面板的显示和隐藏 xff1b 输入 d 控制详情信息的显示和隐藏 xff1b 输入 q
  • CentOS7.2 在GUI下关闭X Server

    有时候需要关闭X Server xff0c 例如在安装NVIDIA驱动的时候 xff0c 需要关闭X Server xff0c 我们可以通过服务来关闭 首先看下服务 root span class hljs variable 64 soft
  • 用c语言实现 将src指向的字符串追加到dest指向字符串的后面

    实现char my strcat char dest char src 函数 返回 xff1a dest字符串的地址 功能 xff1a 将src指向的字符串追加到dest指向字符串的后面 例如 xff1a char dest 10 61 3
  • CoreData 实体之间的关系

    1 Cascade 级联关系 2 Deny 禁止 3 Nullify 作废 当实体之间创建了关系的时候 xff0c 我们需要判断是否建立级联关系 例如 人和身份证是一对一的 两者之间关系反转 即 人有身份证 xff0c 身份证包含人 当删除
  • Doris入门篇-分区分桶实验

    简介 测试分区分桶效果 分区的基本操作 添加分区 ALTER TABLE v2x olap database government car ADD PARTITION p20221203 VALUES LESS THAN 34 2022 1
  • PostgreSQL中的json解析

    1 PostgreSQL json 数组解析 span class token comment INSERT INTO 34 dwd 34 34 dwd test 34 id cname is deleted span span class