我使用FOR JSON PATH语法将表格数据转换为JSON时遇到一些问题:
如果我执行标准查询:
SELECT b.Name FROM dbo
我得到以下格式的结果:12 / 5-A-1。我需要将其转换为JSON数据而不转义反斜杠字符。但是,当我将其转换为JSON时:
SELECT b.Name FROM dbo FOR JSON PATH, WITHOUT ARRAY_WRAPPER
结果的格式为:{"Name": "12\/5-A-1"}
如何在不转义反斜杠字符并获得结果{"Name": "12/5-A-1"}
的情况下进行此转换?
答案 0 :(得分:1)
一种选择是使用公用表表达式生成json,然后在从公用表表达式中进行选择时简单地使用replace
。
首先,创建并填充示例数据(请在您将来的问题中为我们保存此步骤):
DECLARE @T AS TABLE
(
[Name] nvarchar(10)
)
INSERT INTO @T ([Name]) VALUES ('12/5-A-1');
CTE:
WITH CTE(Escaped) AS
(
SELECT [Name]
FROM @T
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
)
最终选择:
SELECT REPLACE(Escaped, '\/','/') As Result
FROM CTE
结果:
{"Name":"12/5-A-1"}