Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Susunan Objek Pelayan SQL kepada Susunan Nilai dalam JSON?

Bagaimana untuk Menukar Susunan Objek Pelayan SQL kepada Susunan Nilai dalam JSON?

Barbara Streisand
Barbara Streisandasal
2025-01-09 18:56:411021semak imbas

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

Penukaran JSON SQL Server 2016: Mengubah Tatasusunan Objek kepada Tatasusunan Nilai

Keupayaan JSON SQL Server 2016 adalah berkuasa, tetapi menukar tatasusunan objek kepada tatasusunan nilai memerlukan pendekatan khusus. Mari kita gambarkan cabaran dan penyelesaiannya.

Pertimbangkan senario ini:

<code class="language-sql">CREATE TABLE #temp (item_id VARCHAR(256))

INSERT INTO #temp VALUES ('1234'),('5678'),('7890')

SELECT * FROM #temp

-- Initial JSON conversion attempt
SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH,root('ids')) </code>

Ini menghasilkan tatasusunan JSON objek:

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

Walau bagaimanapun, matlamatnya ialah tatasusunan JSON nilai:

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

Kuncinya ialah memanfaatkan XML sebagai langkah perantaraan:

<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>

Pertanyaan ini mula-mula membina rentetan XML yang mewakili nilai, kemudian menggunakan STUFF untuk mengalih keluar koma di hadapan, dan akhirnya membungkus hasilnya dalam kurungan segi empat sama untuk membentuk tatasusunan JSON. Klausa FOR JSON PATH, WITHOUT_ARRAY_WRAPPER memastikan output ialah tatasusunan nilai JSON tunggal, bukan tatasusunan yang mengandungi satu objek. Ini dengan cekap mencapai struktur JSON yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Susunan Objek Pelayan SQL kepada Susunan Nilai dalam JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn