mysql解析json_mysql解析简单json字符串
很多时候,我们需要在sql里面直接解析json字符串。这里针对mysql5.7版本的分水岭进行区分。
1.对于mysql5.7以上版本
使用mysql的内置函数JSON_EXTRACT(column, '$.key'),这个函数有两个参数,第一个参数column代表json列的列名;第二个参数key代表json字符串中的某一个key。
SELECT JSON_EXTRACT('{"priceTag":"员工/合作关键人","priceDiscount":"90"}', '$.priceDiscount') AS '定价折扣';
对于简单的json字符串肯定是可以解析成功,但是对于嵌套数组的没试过。
2.对于mysql5.7以下版本
只能充分发挥已有函数的功能去截取实现,无论实现方式是存储过程还是简单的sql语句,其原理都是一样的。
第一步,将所有的花括号的闭括号'}'替换成英文逗号',';第二步,获取key的坐标keyIndex和长度keyLength;第三步,获取以key为起点,第一个英文逗号','的坐标symbolIndex;第四步,使用substring截取字符串SUBSTRING(targetJsonStr, keyIndex + keyLength, symbolIndex - keyIndex - keyLength);第五步,使用replace将双引号'"'替换成空字符串'',完工。
示例:从{"priceTag": "员工/合作关键人","priceDiscount": "90"}中获取priceDiscount的值。
SELECT REPLACE
(
SUBSTRING(
REPLACE('{"priceTag":"员工/合作关键人","priceDiscount":"90"}','}',','),
LOCATE('priceDiscount":',REPLACE('{"priceTag":"员工/合作关键人","priceDiscount":"90"}','}',','))+CHAR_LENGTH('priceDiscount":'),
LOCATE(
',',
REPLACE('{"priceTag":"员工/合作关键人","priceDiscount":"90"}','}',','),
LOCATE('priceDiscount":',REPLACE('{"priceTag":"员工/合作关键人","priceDiscount":"90"}','}',',')) + CHAR_LENGTH('priceDiscount":')
) - (LOCATE('priceDiscount":',REPLACE('{"priceTag":"员工/合作关键人","priceDiscount":"90"}','}',',')) + CHAR_LENGTH('priceDiscount":'))
),'"',''
) AS '定价折扣';
2.0mysql解析简单json字符串
以上就是mysql解析json字符串的实现,谢谢。
mysql解析json_mysql解析简单json字符串相关推荐
- jsp java json解析,jsp中获取json字符串,并解析
JqueryDemo1 function showData() { var str='{ "name": "John" }';//json标准格式 var ob ...
- android中解析后台返回的json字符串
普通形式的: 服务器端返回的json数据格式如下: {"userbean":{"Uid":"100196","Showname&q ...
- MySQL里面json_MySQL中的JSON
MySQL 5.7.7开始,支持了JSON类型.CREATE TABLE IF NOT EXISTS `spss`.`variable` ( `name` VARCHAR(512) NOT NULL, ...
- c语言json 5c,C++的简单JSON字符串转义?
mariolpantun.. 6 我写了一个简单的JSON转义和非转义函数.该代码在GitHub中公开.对于这里感兴趣的人是代码: enum State {ESCAPED, UNESCAPED}; s ...
- cjson构建_[置顶] cJSON库(构建json与解析json字符串)-c语言
一.c语言获取json中的数据. 1.先要有cJOSN库,两个文件分别是cJSON.c和cJSON.h. 2.感性认识 char * json = "{ \"json\" ...
- java解析多层嵌套json字符串
java解析多层嵌套json字符串 java分别解析下面两个json字符串 package jansonDemo;import com.alibaba.fastjson.JSON; import co ...
- jquery parseJSON()方法解析json字符串
在web项目开发中,前端经常需要接收后端传送来的json数据,解析json字符串,再对页面进行渲染.使用jquery解析json字符串通常需要将json字符串转化为javascript的json对象( ...
- mysql json 引号 双引号_关于JSON字符串key缺少双引号的解决方法 的讲解
JSON字符串key缺少引号的解决方法 JSON字符串是key:value形式的字符串,正常key是由双引号括起来的. 例如:<?php $data = array('name'=>'fd ...
- java字符串转json取集合_Java中Json字符串直接转换为对象的方法(包括多层List集合)...
使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...
最新文章
- 你是中层管理者?嗯,一个表面看似风光,实际却很 “鸡肋” 的重要岗位
- bzoj 4602: [Sdoi2016]齿轮
- 多备份cloud 5技术:传统数据备份思路的完美移植
- 查看linux安装redis的位置,linux查看是否安装redis
- 每个前端开发者必会的二十个JavaScript面试题
- 虚拟函数的静态决议 和 RTTI 小例子
- [转]android之Apache Http——向服务器发送请求的同时发送参数
- 计算机辅助外文文献,计算机辅助夹具设计外文文献.pdf
- ubantu安装_Virtualbox-Ubantu-Anaconda 数据分析环境搭建
- pytorch之各类图像库的图片读写方式
- java设计模式适配器模式_Java解释器设计模式
- VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(上)
- 三次样条曲线拟合算法c语言,关于三次样条曲线拟合法
- android取消输入法联想,输入法联想功能,怎么清除输入法联想
- Codeigniter 升级
- 用户流失、股价重挫的Netflix究竟发生了什么?
- 运营商精准大数据外呼系统
- 瑞萨单片机iap串口升级boot程序与app程序合并的工程构建-学习记录
- 人工智能作业 - A*算法程序求解八数码
- 学思录(一):带着信息的角度去学习