Home > Database > Mysql Tutorial > How to Convert a SQL Array of Objects to an Array of Values in JSON (SQL Server 2016)?

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

Patricia Arquette
Release: 2025-01-09 18:47:41
Original
669 people have browsed it

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

SQL Server 2016 JSON Conversion: Array of Objects to Array of Values

SQL Server 2016 offers powerful JSON capabilities, simplifying data transformation for reporting and integration. This example addresses a common need: converting a SQL array of objects into a simpler array of values within a JSON structure.

Scenario:

Consider a table, #temp, containing data like this:

#temp Table:

| item_id | |---|---| | 1234 | | 5678 | | 7890 |

The goal is to transform this data into JSON, presenting the item_id values as a single array, not an array of objects.

Target JSON Structure:

<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>
Copy after login
Copy after login

Solution:

This efficient query achieves the desired conversion:

<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>
Copy after login

Explanation:

The query cleverly uses FOR XML PATH('') to create a comma-separated string of quoted item_id values. STUFF removes the leading comma. The resulting string is then enclosed in square brackets ([]) to form a valid JSON array, which is parsed using JSON_QUERY. Finally, FOR JSON PATH, WITHOUT_ARRAY_WRAPPER formats the output as the desired JSON object.

Output:

Executing the query produces the target JSON structure:

<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>
Copy after login
Copy after login

This method provides a concise and effective way to manage JSON array transformations within SQL Server 2016.

The above is the detailed content of How to Convert a SQL Array of Objects to an Array of Values in JSON (SQL Server 2016)?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template