首页 > 解决方案 > 从 SQL Server 中的 Json 数组中获取 Json 值和 Json 字符串

问题描述

我有一个这样的 JSON 字符串:

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

我需要如下输出:

ID 姓名 字符串
1 美国广播公司 {“ID”:1,“名称”:“abc”}
2 定义 {“ID”:2,“名称”:“def”}

我需要 SQL Server 中的查询

标签: sqljsonsql-serversql-server-2016

解决方案


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

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)

推荐阅读