首页 > 数据库 > mysql教程 > 如何将 SQL 对象数组转换为 JSON 值数组 (SQL Server 2016)?

如何将 SQL 对象数组转换为 JSON 值数组 (SQL Server 2016)?

Patricia Arquette
发布: 2025-01-09 18:47:41
原创
668 人浏览过

How to Convert a SQL Array of Objects to an Array of Values in JSON (SQL Server 2016)?

SQL Server 2016 JSON 转换:对象数组到值数组

SQL Server 2016 提供强大的 JSON 功能,简化了报告和集成的数据转换。 此示例解决了一个常见需求:将 SQL 对象数组转换为 JSON 结构中更简单的值数组。

场景:

考虑一个表,#temp,包含如下数据:

#临时表:

|项目 ID | |---|---| | 1234 | 1234 | 5678 | | 7890 |

目标是将这些数据转换为 JSON,将 item_id 值呈现为单个数组,而不是对象数组。

目标 JSON 结构:

<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>
登录后复制
登录后复制

解决方案:

这个高效的查询实现了所需的转换:

<code class="language-sql">SELECT  
    JSON_QUERY('[' + STUFF((
        SELECT ',' + '"' + CAST(item_id AS VARCHAR(MAX)) + '"' 
        FROM #temp
        FOR XML PATH('')),1,1,'') + ']' ) AS ids  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;</code>
登录后复制

说明:

查询巧妙地使用 FOR XML PATH('') 创建一个用逗号分隔的带引号 item_id 值的字符串。 STUFF 删除前导逗号。 然后将生成的字符串括在方括号 ([]) 中以形成有效的 JSON 数组,并使用 JSON_QUERY 对其进行解析。最后,FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 将输出格式化为所需的 JSON 对象。

输出:

执行查询会生成目标 JSON 结构:

<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>
登录后复制
登录后复制

此方法提供了一种简洁有效的方法来管理 SQL Server 2016 中的 JSON 数组转换。

以上是如何将 SQL 对象数组转换为 JSON 值数组 (SQL Server 2016)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板