4D v16.3

Selection vers JSON

Accueil

 
4D v16.3
Selection vers JSON

Selection vers JSON 


 

Selection vers JSON ( laTable {; leChamp}{; leChamp2 ; ... ; leChampN}{; template}) -> Résultat 
Paramètre Type   Description
laTable  Table in Table à sérialiser
leChamp  Champ in Champ(s) dont le contenu doit être sérialisé
template  Objet in Objet pour la sélection de libellés et de champs
Résultat  Texte in Chaîne contenant le tableau JSON sérialisé

La commande Selection vers JSON retourne une chaîne qui contient un tableau JSON avec autant d'éléments qu'il y a d'enregistrements dans la sélection courante de laTable. Chaque élément du tableau est un objet JSON contenant les libellés et les valeurs des champs de la sélection.

Si vous passez uniquement le paramètre laTable, la commande inclut dans le tableau JSON les valeurs de tous les champs de la table exprimables en JSON. Les champs de type BLOB et image sont ignorés.

Si vous ne souhaitez pas inclure tous les champs de laTable, vous pouvez utiliser soit le paramètre leChamp soit le paramètre template :

  • leChamp : passez un ou plusieurs champ(s) dans ce paramètre. Seules les valeurs des champs définis seront incluses dans le tableau JSON.
  • template : passez un objet 4D contenant une ou plusieurs paire(s) nom/valeurnom peut être tout nom d'attribut valide et valeur est un pointeur vers un champ à inclure. Cette syntaxe permet de personnaliser les libellés des champs dans le tableau JSON.

Cette commande prend en charge les champs de type objet : les données des champs sont automatiquement converties au format JSON. A noter que l'instruction 4D suivante sera interprétée comme "produire du JSON à partir de toutes les valeurs de champObjet dans la sélection courante de la table" :

 Selection vers JSON([uneTable];champObjet)

Note : Après un appel à Selection vers JSON, la sélection courante n'est pas modifiée mais l'enregistrement courant n'est plus chargé et il peut avoir changé (le dernier enregistrement de la sélection devient l'enregistrement courant). Après un Selection vers JSON, utilisez les commandes CHARGER ENREGISTREMENT ainsi que ALLER DANS SELECTION (si nécessaire) si vous souhaitez utiliser les valeurs des champs de l'enregistrement courant d'origine.

Vous voulez créer une chaîne JSON représentant cette sélection :

1) Vous souhaitez inclure les valeurs de tous les champs de la table [Adhérents] :

 $jsonString :=Selection vers JSON([Adhérents])
     // $jsonString = [{"Nom":"Durant","Prénom":"Marc","Adresse":"25 rue du
     //parc","Code postal":"95000","Ville":"Pontoise"},{"Nom":"Smith",
     //"Prénom":"John","Adresse":"24, rue Philibert-Delorme ","Code postal":
     //"75017","Ville":"Paris"},{"Nom":"Auquart","Prénom":"Adémart",
     //"Adresse":"37, quai de l´Iton","Code postal":"37100","Ville":"Tours"},...]

2) Vous souhaitez réduire la sélection et n’inclure que deux champs dans la chaîne JSON en utilisant la syntaxe basée sur les champs :

 CHERCHER([Adhérents];[Adhérents]Nom="A@")
 $jsonString :=Selection vers JSON([Adhérents];[Adhérents]Nom;[Adhérents]Ville)
     // $jsonString = [{"Nom":"Auquart","Ville":"Tours"},{"Nom":"Aubert","Ville":"Paris"}]

3) Vous souhaitez n’inclure qu’un champ dans la chaîne JSON et utiliser un autre libellé. Vous utilisez la syntaxe template :

 C_OBJET($template)
 OB FIXER($template;"Membre";->[Adhérents]Nom) //libellé personnalisé et un seul champ
 TOUT SELECTIONNER([Adhérents])
 $jsonString :=Selection vers JSON([Adhérents];$template)
     // $jsonString = [{"Membre":"Durant"},{"Membre":"Smith"},{"Membre":"Auquart"},{"Membre":"Aubert"},{"Membre":"Lenuze"},{"Membre":"Pradel"}]

Vous utilisez la syntaxe avec template afin d'exporter des champs de différentes tables :

 C_OBJET($template)
 C_TEXTE($chaineJSON)
 OB FIXER($template;"Nom";->[Emp]Nom)
 OB FIXER($template;"Prénom";->[Emp]Prénom)
 OB FIXER($template;"Société";->[Société]Nom) //libellé personnalisé sinon conflit avec le champ [Emp]Nom
 TOUT SELECTIONNER([Emp])
 FIXER LIEN CHAMP([Emp]UUID_Societe;Automatique;Ne pas changer)
 $chaineJSON:=Selection vers JSON([Emp];$template)
 FIXER LIEN CHAMP([Emp]UUID_Societe;Configuration structure;Ne pas changer)



Voir aussi  

JSON VERS SELECTION

 
PROPRIÉTÉS 

Produit : 4D
Thème : JSON
Numéro : 1234
Nom intl. : Selection to JSON

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v14

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)