Article
· Jan 23 2m de lecture

Obtenir JSON à partir de SQL

Saviez-vous que vous pouvez obtenir des données JSON directement à partir de vos tables SQL ?

Permettez-moi de vous présenter 2 fonctions SQL utiles utilisées pour récupérer des données JSON à partir de requêtes SQL : JSON_ARRAY et JSON_OBJECT.
Vous pouvez utiliser ces fonctions dans l'instruction SELECT avec d'autres types d'éléments de sélection, et elles peuvent être spécifiées à d'autres emplacements où une fonction SQL peut être utilisée, comme dans une clause WHERE.

La fonction JSON_ARRAY prend une liste d'expressions séparées par des virgules et renvoie un array JSON contenant ces valeurs.

SELECT TOP 3 Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State) "JSON data" 
FROM Sample.Person
Pour omettre les propriétés des valeurs nulles, ajoutez simplement "ABSENT ON NULL" à la fonction :
SELECT TOP 3 Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State ABSENT ON NULL
) "JSON data" 
FROM Sample.Person

Pour obtenir ces propriétés à valeur nulle, utilisez plutôt "NULL ON NULL" (et comme il s'agit de la valeur par défaut, vous ne pouvez tout simplement pas l'ajouter du tout comme dans le premier exemple).

Imaginez rassembler tous vos téléphones de patients/clients dans un seul tableau JSON sans le créer :

SELECT JSON_ARRAY(HomePhone,WorkPhone,Mobile) "JSON data"
FROM Test.Phones
["055-8263371","052-4957286","054-4951066"]

La fonction JSON_OBJECT prend une liste de paires clé:valeur séparées par des virgules et renvoie un objet JSON contenant ces valeurs.
Vous pouvez spécifier n'importe quelle chaîne entre guillemets simples comme nom de clé, mais notez que cela n'applique aucune convention de dénomination ni aucun contrôle d'unicité pour les noms de clé.
Pour la valeur, vous pouvez spécifier un nom de colonne ou une autre expression. De plus, notez qu'il ne prend pas en charge la syntaxe de l'astérisque (*) pour spécifier tous les champs d'un tableau.

SELECT TOP 3 JSON_OBJECT('title':'Person from’,'country’:UCASE(Home_State),'table':%TABLENAME,'name':Name,'id':%ID,'age':Age) "JSON data" 
FROM Sample.Person

Pour omettre les propriétés des valeurs nulles, ajoutez simplement "ABSENT ON NULL" à la fonction :

SELECT TOP 3 JSON_OBJECT('title':'Person from’,'country’:UCASE(Home_State),'table':%TABLENAME,'name':Name,'id':%ID,'age':Age ABSENT ON NULL) "JSON data" 
FROM Sample.Person

Pour obtenir ces propriétés à valeur nulle, utilisez plutôt "NULL ON NULL" (et comme il s'agit de la valeur par défaut, vous pouvez tout simplement ne pas l'ajouter du tout).

Discussion (0)2
Connectez-vous ou inscrivez-vous pour continuer