具体请点击查看
当前,也可以认为就是水贴
对于某个属性的值未数组的时候,我们取某一条中某一条某个元素,大家应该都理解了,具体
如下(详情请看上一篇 Mysql5.7 + 查询并解析json数据方法):
SELECT
JSON_EXTRACT(
'{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
'$.ladderConfig'
)
FROM
DUAL
SELECT
JSON_EXTRACT(
JSON_EXTRACT(
'{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
'$.ladderConfig'
),'$[0]')
FROM
DUAL
但是 我就想获取所有的子元素中某个元素的值,那该怎么取呢?
如下
SELECT
JSON_EXTRACT(
'{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
'$.ladderConfig[*].price'
)
FROM
DUAL
当然,前后带[]符号也很好解决啊 直接替换
SELECT
REPLACE(
REPLACE(
JSON_EXTRACT(
'{"ladder":true,"useFirstSurplusDosage":0.0,"useSecondSurplusDosage":0.0,"ladderConfig":[{"price":2800,"dosage":242.0,"increment":"60"}, {"price":3360,"dosage":1800.0,"increment":"60"}, {"price":4200}, {}, {}],"gasValue":34.0,"detail":[{"price":2800,"cur":0,"fee":95200,"dosage":34.0}],"fee":95200}',
'$.ladderConfig[*].price'
),'[',''),']','')
FROM
DUAL
这样是不是理解了? 就是我们取到数据了 那就可以为所欲为了!