json 响应中的所有值(包括数值)都需要用双引号引起来



我正在尝试从表中以json格式检索数据,并在SQL Server中使用以下查询,

Select * from TableA for json path, root( 'table 1')

我得到的 json 响应为 ,

{  
"TableA":[  
{  
"Id":34562,
"A Id":2,
"Name":"ZDR"
}
]
}

其中字段"ID"和"A Id"在数据库中声明为"int"

现在我需要这些值也应该显示在双引号内,有什么方法可以在SQL Server 2016本身中处理,以明确所有字段值,无论数据类型如何,都应括在双引号中,请确实需要完整的!!

像上面的单查询一样,当我运行存储过程时,我最终会在存储过程中设置12个查询,我将得到一个json响应,其中所有值都应括在双引号内。

没有"自动魔法"的方法可以做到这一点。您可以做的是在SELECT语句中将数字列CAST为文字(varcharnvarchar):

Select CAST(Id as nvarchar(10)) AS Id,
CAST([A Id], nvarchar(10)) AS "A ID", 
[Name]
from TableA for json path, root( 'table 1');

希望这有帮助!

最新更新