首页 > 数据库 >SQL中json解析技巧

SQL中json解析技巧

时间:2023-06-14 19:45:08浏览次数:81  
标签:var1 string get object json SQL 解析

比如字段var1,值是'{"a":{"b":{"c":1,"d":2}}}'

大家都知道用get_json_object(var1,'$.a')可以得到'{"b":{"c":1,"d":2}}',如果要继续下挖,不需要get_json_object函数一直套

可以直接按这个写法:get_json_object(var1,'$.a.b'),就可以得到'{"c":1,"d":2}'

同理,get_json_object(var1,'$.a.b.c')可以得到'1'

 

要注意的是:

1、get_json_object返回值类型是string

json进入数仓时,为了保证运维稳定性,会用string数据类型来接。

在获取关键字对应的值时,即使在json里面表现出整数、浮点数的特征,但经过get_json_object解析后依然是string类型的数据。

因此在解析json写入模型时需要特别注意用cast函数转换数据类型

2、get_json_object中,参数二里的关键词有大小写要求

按以上的例子,get_json_object(var1,'$.A')不会得到'{"b":{"c":1,"d":2}}',而是NULL,要特别注意

 

关于json解析,可以在JSON 在线解析 | 菜鸟工具 (runoob.com)格式化json,并且可以按树状收纳操作json,非常方便。

标签:var1,string,get,object,json,SQL,解析
From: https://www.cnblogs.com/soccerchen/p/17481194.html

相关文章

  • 数据比对通用SQL模版
    --********************************************************************----author:xujinchen--createtime:2023-06-1417:51:04--********************************************************************--withods_dcas(selectpt,count(*)......
  • BERT模型解析
    1.概述BidirectionalEncoderRepresentationfromTransformers(BERT)[1],即双向Transformer的Encoder表示,是2018年提出的一种基于上下文的预训练模型,通过大量语料学习到每个词的一般性embedding形式,学习到与上下文无关的语义向量表示,以此实现对多义词的建模。与预训练语言模型ELMo[......
  • 机器学习算法实现解析——libFM之libFM的训练过程概述
    本节主要介绍的是libFM源码分析的第四部分——libFM的训练。FM模型的训练是FM模型的核心的部分。4.1、libFM中训练过程的实现在FM模型的训练过程中,libFM源码中共提供了四种训练的方法,分别为:StochasticGradientDescent(SGD),AdaptiveSGD(ASGD),AlternatingLeastSquares(ALS)和MarkovCh......
  • Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑
    Mysql8.0.32unionall创建视图无法使用中文模糊查询的坑摘要本周研发同事反馈现场有一个问题.客户使用mysql的数据库(Windows平台)然后在多表unionall创建的视图内执行查询如果使用中文模拟查询,就没结果返回.大部分csdn的搜索结构都是说需要在my.ini里面增加部分默......
  • 【后端面经-数据库】MySQL的事务隔离级别简介
    (【后端面经-数据库】MySQL的事务隔离级别简介)0.事务的概念事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作ACID:A-Atomicity:原子性,事务的执行必须保证所有的动作都执行完毕;C-Consistency:一致性,事务的执行必......
  • mybatis 处理in 1000以上sql
    展开查看点击查看代码updateT_XSGL_XSXX_XJXXxjxxsetxjxx.XWZSBH=null,xjxx.ZHXGR=#{userId},xjxx.ZHXGSJ=sysdatewhereexists(select1fromT_BYGL_XSBYJGbyjgwherebyjg.GDMCisnullandbyjg.XS_ID=xjxx.XS_ID)and(xjxx.......
  • js把string转化为json
    //声明变量名为a的对象vara={a:1,b:2,c:"wangwei"};//将JSON对象转化为JSON字符,赋值给变量letstrResult=JSON.stringify(a)//查看变量strResult是什么类型typeofstrResult//'string'//JSON.parse()用于从一个字符串中解析出json对象letjsonResult=JSON.parse(str......
  • navicat连不上服务器的mysql?
    服务器安装mysql,释放3306端口就不用说了,然后就是配置一下数据库的权限,1.进入ubuntu,连接数据库并输入密码:mysql-u-root-p2.输入一下命令进行授权(mysql语句不区分大小写):grantallprivilegeson*.*to'root'@'%'identifiedby'你的mysql密码'withgrantoption;3.刷新权限......
  • 【后端面经-数据库】MySQL的事务隔离级别简介
    目录0.事务的概念1.三类问题2.事务隔离级别3.操作指令4.总结5.参考博文0.事务的概念事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作ACID:A-Atomicity:原子性,事务的执行必须保证所有的动作都执行完毕;C-Co......
  • Go 语言之 SQLX 高级操作 sqlx.In
    Go语言之SQLX高级操作sqlx.Insqlx.In介绍sqlxisapackageforGowhichprovidesasetofextensionsontopoftheexcellentbuilt-indatabase/sqlpackage.IllustratedguidetoSQLX:http://jmoiron.github.io/sqlx/sqlx:https://github.com/jmoiron/sqlx"In&q......