从 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)
我有这样一个 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)