MYSQL中解析json格式数据

MYSQL中解析json格式数据

1、判断是否是json格式数据

JSON_VALID(requestbody)

注:requestbody为指定字段

2、解析json中的指定字段(可多层嵌套)

JSON_EXTRACT(requestbody, '$.body')

注:requestbody为指定字段,body为json中的key

3、计算json中指定数组的长度

JSON_LENGTH()

4、完整示例

select * from  (
select 
*,
CASE 
    WHEN JSON_VALID(requestbody) 
    THEN JSON_LENGTH(JSON_EXTRACT(JSON_EXTRACT(JSON_EXTRACT(requestbody, '$.body'), '$.collectInfo'), '$.collectguideInfo') ) 
    ELSE null 
    END as listSize
from prptable 
where REQUESTTYPE = 'REGIST' 
and requestbody like '%docCode%' 
) jsonStr
where listSize > 1
order by id desc