SQL到JSON轉換:在SQL 2016中將物件陣列轉換為值陣列
SQL 2016 提供了將SQL Server資料轉換為JSON的功能,擴充了許多可能性。然而,在處理物件數組時,有時所需的JSON結構可能與預設轉換結果不同。
具體來說,將物件陣列轉換為JSON時,預設行為是將物件作為其自身陣列嵌入父數組中。例如:
<code class="language-sql">SELECT (SELECT item_id FROM #temp FOR JSON PATH,root('ids'))</code>
結果:
<code class="language-json">{ "ids": [{ "item_id": "1234" }, { "item_id": "5678" }, { "item_id": "7890" }] }</code>
在某些情況下,可能更希望將物件數組顯示為值數組,無需嵌套結構。
為了實現這一點,可以使用中間XML轉換:
<code class="language-sql">SELECT JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids FOR JSON PATH , WITHOUT_ARRAY_WRAPPER</code>
此步驟將資料轉換為扁平化的XML結構,然後可以使用JSON_QUERY()
和WITHOUT_ARRAY_WRAPPER
參數將其轉換為JSON。結果是所需的包含值的陣列:
<code class="language-json">"ids": [ "1234", "5678", "7890" ]</code>
以上是如何在 SQL 2016 中將 SQL Server 物件陣列轉換為 JSON 值陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!