查询路径中包含意外字符的 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
我第一次在数据库中使用 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