首頁 >資料庫 >mysql教程 >如何將 SQL 物件陣列轉換為 JSON 值陣列 (SQL Server 2016)?

如何將 SQL 物件陣列轉換為 JSON 值陣列 (SQL Server 2016)?

Patricia Arquette
Patricia Arquette原創
2025-01-09 18:47:41706瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn