在 SQL Server 中将 BASE-64 编码的 JSON 文档转换为 JSON 字符串



我设置了一个SQL表,将.json文件存储为varchar类型的base-64编码文本。有没有办法仅使用 SQL 语句将这些文件转换为 JSON 字符串?我只是尝试从编码文件中检索 JSON 字符串。

我已经尝试了许多 T-SQL JSON 函数。但是,它们仅适用于 JSON 字符串,不适用于 JSON 文档。

在 SQL Server 2005 及更高版本上,您可以使用 XML 查询来为您执行此操作,例如:

if object_id(N'dbo.StackOverflow') is not null
drop table dbo.StackOverflow;
go
create table dbo.StackOverflow (
Base64JSON varchar(30) not null
);
insert dbo.StackOverflow (Base64JSON) values ('eyJIZWxsbyI6ICJXb3JsZCEifQ==');
go
select Base64JSON,
[JSON] = cast(cast('' as XML).value('xs:base64Binary(sql:column("StackOverflow.Base64JSON"))', 'varbinary(30)') as varchar(30))
from dbo.StackOverflow

这会产生结果:

Base64JSON                     JSON
------------------------------ ------------------------------
eyJIZWxsbyI6ICJXb3JsZCEifQ==   {"Hello": "World!"}

最新更新