Invalid JSON path expression. The error is around character position 2.

在MySQL中编写了一个处理JSON对象数组的函数,遇到一个问题:使用jsonarray->$[i].educationalLevel语法时出现错误。经过分析,怀疑是变量i未被识别为数字。解决方案是将表达式改为JSON_UNQUOTE(JSON_EXTRACT(jsonarray,CONCAT($[,i,].technicalTitles))),通过CONCAT函数确保变量i作为数字部分正确插入路径中,从而解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

当时写了一个mysql函数,主要是处理json对象数组数据,然后首先要循环json数组,然后发现
jsonarray->>'$[i].educationalLevel' 这个语法竟然是错误的,按正常来说不应该异常。

在这里插入图片描述
报错信息如下:

在这里插入图片描述

解决过程:

我猜测是变量i导致的, 于是将jsonarray->>'$[i].educationalLevel'改为了如下:

JSON_UNQUOTE(JSON_EXTRACT(jsonarray,CONCAT('$[',i,'].technicalTitles')));

->> 等同于JSON_UNQUOTE(JSON_EXTRACT()); 这两个没区别,重点是 这个变量i可能没有被识别成数字,所以这里使用了CONCAT将变量i分开了写,于是便可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪 咖@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值