如何使用 SQL 服务器读取复杂的 json 数组

How to read a complex json array with SQL Server

这是我的查询:

SELECT
    JSON_QUERY(MyStringColumnWithJson, '$.Images') AS images
FROM MyTable

其中 returns 具有 JSON 数据的单个字段如下所示:

"{ 
   "Images":
   [
     {"Name":"test1.jpeg","Description":"originalName1.jpeg"}, 
     {"Name":"test2.jpeg","Description":"originalName2.jpeg"}, 
     {"Name":"test3.jpeg","Description":"originalName3.jpeg"}
   ]
}"

如何将图像结果逐行读取到临时 table 结构中?

使用OPENJSON其中returns一个数据集,不是JSON_VALUE,returns一个标量值。例如:

DECLARE @JSON nvarchar(MAX) = N'{ 
"Images":
   [
     {"Name":"test1.jpeg","Description":"originalName1.jpeg"}, 
     {"Name":"test2.jpeg","Description":"originalName2.jpeg"}, 
     {"Name":"test3.jpeg","Description":"originalName3.jpeg"}
   ]
}';

SELECT *
FROM OPENJSON(@JSON, '$.Images')
     WITH (Name nvarchar(128),
           Description nvarchar(128))OJ;

SELECT I.[Name],
       I.Description
FROM MyTable MT
     CROSS APPLY OPENJSON(MT.YourJsonColumn, '$.Images')
                 WITH (Name nvarchar(128),
                       Description nvarchar(128)) I;