如何在 SQL Server 2016 中以 nvarchar 格式获取 json 输出

How to get json output in nvarchar, in SQL Server 2016

我使用此查询将数据转换为 JSON

SELECT *FROM tbl_subject FOR JSON AUTO

我得到的响应是

当我点击响应时,它打开为 XML 文件

如何将此 xml 更改为 nvarchar 数据类型

首先,在SQL服务器中,JSON本身并不是一种数据类型(XML是),而只是一种字符串表示。

您看到的内容是由于 SQL Server Management Studio 在作为结果集返回时如何处理 JSON。它不是 xml,SSMS 只是拍打 .xml 文件类型,并美化结果。如果您要更改返回结果的方式(工具|选项|查询结果|SQL 服务器|常规),您会看到类似这样的内容:

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
---------------------------------------------------------- 
[{"RowID":1,"UniversityID":1,"AcademicID":4,"CourseID":1}]

但这就是 SSMS returns 的结果。如果您要从应用程序执行语句,结果将是字符串数据类型。

您还可以更改执行查询的方式,如下所示:

DECLARE @nres nvarchar(max) = (SELECT * FROM dbo.tb_Subject FOR JSON AUTO)
SELECT @nres

希望对您有所帮助!