如何在SQL Server 2016中获取nvarchar中的json输出

ram*_*mar 0 json sql-server-2016

我使用此Query将数据转换为JSON

SELECT*FROM tbl_subject FOR JSON AUTO

我得到了回应 在此输入图像描述

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

在此输入图像描述

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

小智 5

首先,在SQL Server中,JSON本身不是数据类型(XML是),而只是一个字符串表示.

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

JSON_F52E2B61-18A1-11d1-B105-00805F49916B
---------------------------------------------------------- 
[{"RowID":1,"UniversityID":1,"AcademicID":4,"CourseID":1}]
Run Code Online (Sandbox Code Playgroud)

但这就是SSMS如何返回结果.如果要从应用程序执行语句,结果将是字符串数据类型.

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

DECLARE @nres nvarchar(max) = (SELECT * FROM dbo.tb_Subject FOR JSON AUTO)
SELECT @nres
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!