查询路径中包含意外字符的 JSON 值

Query for JSON value with unexpected character in path

我第一次在数据库中使用 JSON 值。我想使用 JSON_VALUE 或 JSON_QUERY 到 return JSON 的一个值或部分,但是设计这个的人在键中使用了“-”,这是一个非法值。研究表明我需要使用 FOR JSON 来转义它,但我不知道如何转义。

尝试查询:

select 
    xt.ID,
    JSON_QUERY(xt.JSON_DB_VALUE, '$.CusomterQuery.Details.cust-names') as JSON_WITH_NAMES,
    JSON_VALUE(xt.JSON_DB_VALUE, '$.CusomterQuery.Details.cust-names.first-name') as FIRST_NAME
from EXAMPLE_TABLE xt 

收到错误:

JSON path is not properly formatted. Unexpected character '-' is found at position xx.

谢谢

感谢 Zhorov 的快速评论,这是非常简单的解决方案 - 在具有非法字符的路径部分周围添加引号。

select 
    xt.ID,
    JSON_QUERY(xt.JSON_DB_VALUE, '$.CusomterQuery.Details."cust-names"') as JSON_WITH_NAMES,
    JSON_VALUE(xt.JSON_DB_VALUE, '$.CusomterQuery.Details."cust-names"."first-name"') as FIRST_NAME
from EXAMPLE_TABLE xt