Maison > base de données > tutoriel mysql > Comment convertir un tableau d'objets SQL Server en un tableau de valeurs en JSON ?

Comment convertir un tableau d'objets SQL Server en un tableau de valeurs en JSON ?

Barbara Streisand
Libérer: 2025-01-09 18:56:41
original
1021 Les gens l'ont consulté

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

Conversion JSON SQL Server 2016 : transformer des tableaux d'objets en tableaux de valeurs

Les fonctionnalités JSON de SQL Server 2016 sont puissantes, mais la conversion de tableaux d'objets en tableaux de valeurs nécessite une approche spécifique. Illustrons le défi et la solution.

Considérez ce scénario :

<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>
Copier après la connexion

Cela donne un tableau JSON de objets :

<code class="language-json">{
    "ids": [{
        "item_id": "1234"
    },
    {
        "item_id": "5678"
    },
    {
        "item_id": "7890"
    }]
}</code>
Copier après la connexion

L'objectif, cependant, est un tableau JSON de valeurs :

<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>
Copier après la connexion

La clé est d'exploiter XML comme étape intermédiaire :

<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>
Copier après la connexion

Cette requête construit d'abord une chaîne XML représentant les valeurs, puis utilise STUFF pour supprimer la virgule de début et enfin place le résultat entre crochets pour former un tableau JSON. La clause FOR JSON PATH, WITHOUT_ARRAY_WRAPPER garantit que la sortie est un seul tableau de valeurs JSON, et non un tableau contenant un seul objet. Cela permet d'obtenir efficacement la structure JSON souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal