Heim >Datenbank >MySQL-Tutorial >Wie konvertiere ich ein SQL Server-Objektarray in ein Wertearray in JSON?

Wie konvertiere ich ein SQL Server-Objektarray in ein Wertearray in JSON?

Barbara Streisand
Barbara StreisandOriginal
2025-01-09 18:56:41976Durchsuche

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

SQL Server 2016 JSON-Konvertierung: Objektarrays in Wertearrays umwandeln

Die JSON-Funktionen von SQL Server 2016 sind leistungsstark, aber die Konvertierung von Objektarrays in Wertearrays erfordert einen bestimmten Ansatz. Lassen Sie uns die Herausforderung und Lösung veranschaulichen.

Stellen Sie sich dieses Szenario vor:

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

Dies ergibt ein JSON-Array von Objekten:

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

Das Ziel ist jedoch ein JSON-Array von Werten:

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

Der Schlüssel liegt darin, XML als Zwischenschritt zu nutzen:

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

Diese Abfrage erstellt zunächst eine XML-Zeichenfolge, die die Werte darstellt, entfernt dann mit STUFF das führende Komma und schließt das Ergebnis schließlich in eckige Klammern ein, um ein JSON-Array zu bilden. Die FOR JSON PATH, WITHOUT_ARRAY_WRAPPER-Klausel stellt sicher, dass die Ausgabe ein einzelnes JSON-Array von Werten ist und kein Array, das ein einzelnes Objekt enthält. Dadurch wird effizient die gewünschte JSON-Struktur erreicht.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein SQL Server-Objektarray in ein Wertearray in JSON?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn