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 listSizefrom prptable where REQUESTTYPE = 'REGIST' and requestbody like '%docCode%' ) jsonStrwhere listSize > 1order by id desc