如何在 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
希望对您有所帮助!
我使用此查询将数据转换为 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
希望对您有所帮助!