无法提取键具有特殊字符在使用MySQL的JSON_EXTRACT

问题描述 投票:2回答:1

我在我的表(MySQL数据库)一个JSON场。

以下是以下结构:

{
    "article":{
            "Key's 1":{
                "value":"24"
            }
            "Key's of the something's 2":{
                "value":"55"
            }
    }

}

我试图提取的“Key的1”中的“值”字段。

由于特殊的字符,如单引号和空间,我无法使用JSON_EXTRACT功能。

它给了错误:无效的JSON路径expression.This误差约为字符位置编号:10

我的查询:

select 
    JSON_EXTRACT(analytics_json,'$.article.Key\'s 1.value')As value
from
    tbl_json_data;

即使在地方反斜杠,我收到了错误。

mysql json
1个回答
1
投票

你可以逃避双引号每个JSON路径组件来处理特殊字符和空格。以下工作:

SELECT 
    JSON_EXTRACT(analytics_json,'$.article."Key''s 1".value') AS value
FROM tbl_json_data;

Demo

请注意,您的键名实际上有两个问题。首先,它包含一个单引号。我们可以通过只增加了一倍两个单引号处理的。键名也包含空格。通过在双引号逃逸我们可以解决这一问题,但它很可能是最好避免使用具有空格键JSON。

© www.soinside.com 2019 - 2024. All rights reserved.