我的表(MySQL数据库)中有一个json字段。
以下是结构:
{
"article":{
"Key's 1":{
"value":"24"
}
"Key's of the something's 2":{
"value":"55"
}
}
}
我正在尝试提取“键的1” 的“值” 字段。
由于特殊字符,例如单引号和空格,我无法使用JSON_EXTRACT函数。
出现错误:无效的JSON路径表达式。此错误围绕字符位置no:10
我的查询:
select
JSON_EXTRACT(analytics_json,'$.article.Key\'s 1.value')As value
from
tbl_json_data;
即使在放置反斜杠之后,我仍然收到错误消息。
答案 0 :(得分:1)
您可以使用双引号将每个JSON路径组件转义以处理特殊字符和空格。以下作品:
SELECT
JSON_EXTRACT(analytics_json,'$.article."Key''s 1".value') AS value
FROM tbl_json_data;
请注意,您的密钥名实际上有两个问题。首先,它包含一个文字单引号。我们可以通过将两个单引号加倍来解决这个问题。键名还包含空格。通过使用双引号转义,我们可以解决此问题,但最好避免使用具有空格的JSON密钥。