从 SQL 服务器中的 Json 数组获取 Json 值和 Json 字符串

get Json values and Json string from Json Array in SQL Server

我有这样一个 JSON 字符串:

{
    "success": "true",
    "data": [
              { "ID": 1, "name": "abc" },
              { "ID": 2, "name": "def" }
            ]
}

我需要如下输出:

ID name JsonString
1 abc {"ID": 1, "name": "abc"}
2 def {"ID": 2, "name": "def"}

我需要 SQL 服务器中的查询

这里唯一有趣的事情是 OPENJSON 的初始路径(因为我们只关心 data)和反映原始 [=16] 的 属性 JsonString =],它需要一个路径和一个覆盖。

DECLARE @json NVARCHAR(MAX) = '{"success":"true","data":[{"ID":1,"name":"abc"},{"ID":2,"name":"def"}]}';

SELECT * 
FROM OPENJSON(@json, '$.data')
WITH (ID INT, name VARCHAR(100), JsonString NVARCHAR(MAX) '$' AS JSON)