Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Susunan Objek Pelayan SQL kepada Susunan Nilai dalam 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!