Maison >base de données >tutoriel mysql >Comment convertir un tableau d'objets SQL en un tableau de valeurs en JSON (SQL Server 2016) ?
Conversion JSON SQL Server 2016 : tableau d'objets en tableau de valeurs
SQL Server 2016 offre de puissantes fonctionnalités JSON, simplifiant la transformation des données pour le reporting et l'intégration. Cet exemple répond à un besoin courant : convertir un tableau d'objets SQL en un tableau de valeurs plus simple au sein d'une structure JSON.
Scénario :
Considérons un tableau, #temp
, contenant des données comme celle-ci :
#tableau temp :
| article_id | |---|---| | 1234 | | 5678 | | 7890 |
Le but est de transformer ces données en JSON, en présentant les item_id
valeurs comme un seul tableau, et non comme un tableau d'objets.
Structure JSON cible :
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
Solution :
Cette requête efficace permet d'obtenir la conversion souhaitée :
<code class="language-sql">SELECT JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + CAST(item_id AS VARCHAR(MAX)) + '"' FROM #temp FOR XML PATH('')),1,1,'') + ']' ) AS ids FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;</code>
Explication :
La requête utilise intelligemment FOR XML PATH('')
pour créer une chaîne de valeurs item_id
entre guillemets séparées par des virgules. STUFF
supprime la virgule de début. La chaîne résultante est ensuite placée entre crochets ([]
) pour former un tableau JSON valide, qui est analysé à l'aide de JSON_QUERY
. Enfin, FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
formate la sortie en tant qu'objet JSON souhaité.
Sortie :
L'exécution de la requête produit la structure JSON cible :
<code class="language-json">{ "ids": [ "1234", "5678", "7890" ] }</code>
Cette méthode fournit un moyen concis et efficace de gérer les transformations de tableaux JSON dans SQL Server 2016.
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!