Référence > Page de référence des fonctions > Fonctions JSON > JSONSetElement
 

JSONSetElement

Ajoute ou modifie un élément de données JSON défini par un nom d'objet, un index de tableau ou un chemin d'accès.

Format 

JSONSetElement ( json ; cléOuIndexOuChemin ; valeur ; type )

Paramètres 

json : une expression ou une rubrique de type Texte qui contient un objet ou un tableau JSON.

cléOuIndexOuChemin : une expression ou une rubrique de type Texte qui spécifie un nom d'objet, un index de tableau ou un chemin d'accès JSON. Consultez la section Utilisation des fonctions JSON.

valeur : une expression ou une rubrique qui contient un nombre, du texte ou des données JSON.

type : une valeur nommée qui spécifie le type de données à définir (voir ci-dessous).

Résultat 

Texte

Provenance 

FileMaker Pro 16.0

Description 

Cette fonction renvoie json avec la valeur définie dans le paramètre cléOuIndexOuChemin spécifié. Si le paramètre json est vide (""), cette fonction ajoute la valeur à un objet JSON (entre accolades { }), à moins que la première partie du paramètre cléOuIndexOuChemin commence par le caractère « [ ». Dans ce cas, cette fonction ajoute la valeur à un tableau JSON (entre crochets [ ]).

Pour le paramètre type, utilisez l'une des valeurs suivantes. Lorsqu'une valeur est ajoutée dans le paramètre json, le paramètre type indique la conversion de la valeur en type JSON spécifique ou l'insertion de la valeur sans modifier le type.

 

Paramètre type1

Type d'entrée pour le paramètre valeur

Type de sortie

JSONString (1)

Texte FileMaker

Chaîne JSON (" ")

JSONNumber (2)

Nombre FileMaker

Nombre JSON

JSONObject (3)

Objet JSON

Objet JSON ( { } )

JSONArray (4)

Tableau JSON

Tableau JSON ( [ ] )

JSONBoolean (5)

Valeur FileMaker ou valeur booléenne JSON

Valeur booléenne JSON

JSONNull (6)

Type ignoré

Valeur nulle JSON

JSONRaw (0)

Elément JSON

Elément JSON (ou chaîne JSON, si la valeur n'est pas une valeur JSON valide)

1. Vous pouvez spécifier un type à l'aide de la valeur nommée ou de la valeur numérique indiquée entre parenthèses, par exemple, JSONString ou 1.

Pour JSONBoolean, si la valeur est true ou un nombre différent de zéro, elle est traitée comme vraie ; si la valeur est false ou zéro, elle est traitée comme fausse. Sinon, la valeur est déterminée true ou false de la même manière que le paramètre test l'est dans la fonction Si.

Pour JSONRaw, l'analyseur JSON traite la valeur pour déterminer si elle utilise une syntaxe JSON valide. Si la valeur est une valeur JSON valide, le résultat analysé est utilisé dans la valeur renvoyée par cette fonction, sans convertir d'éléments en types de données JSON. Tout les caractères se trouvant après le premier élément JSON dans la valeur sont ignorés (par exemple si la valeur est « 4,2 », seul « 4 » sera inséré, car la virgule est le séparateur entre les éléments d'une syntaxe JSON. Si la valeur n'est pas une valeur JSON valide, elle est convertie en chaîne JSON valide dans la valeur renvoyée.

Vous pouvez également définir plusieurs éléments en fournissant un ensemble supplémentaire de paramètres cléOuIndexOuChemin, valeur et type entre crochets [ ] pour chaque élément. La syntaxe suivante définit les éléments N simultanément :

JSONSetElement ( json ;
   [ cléOuIndexOuChemin1 ; valeur1 ; type1 ] ;
   [ cléOuIndexOuChemin2 ; valueur2 ; type2 ] ;
   ...
   [ cléOuIndexOuCheminN ; valeurN ; typeN ]
)

Remarques 

Cette fonction n'est pas prise en charge dans les solutions d'exécution et renvoie « ? ».

Exemple 1 

Ajoute une clé et sa valeur à la racine d'un objet JSON.

JSONSetElement ( "{ \"a\" : 11 }" ; "b" ; 22.23 ; JSONNumber ) renvoie {"a":11,"b":22.23}.

Exemple 2 

Ajoute un objet JSON comme élément d'un autre objet JSON. Si la variable $$JSON est définie sur

{
"a" : {
"id" : 12,
"lien" : 34
}
}

alors

JSONFormatElements (
   JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lien\" : 73 } " ;
      JSONObject
   )
)

Résultat

{
"a" :
{
"id" : 12,
"lien" : 34
},
"b" :
{
"id" : 14,
"lien" : 73
}
}

Exemple 3 

Modifie les valeurs des clés « offre spéciale » et « stock » du premier élément « produit » du tableau à partir de l'Exemple de données JSON stocké dans la variable $$JSON.

JSONFormatElements (
   JSONSetElement ( $$JSON ;
   [ "boulangerie.produit[0].offre spéciale" ; 0 ; JSONBoolean ] ;
   [ "boulangerie.produit[0].stock" ; 0 ; JSONNumber ] ;
   )
)

renvoie les mêmes données que dans la variable $$JSON mais modifie le premier élément du tableau « produit » en

{
"catégorie" : "Pains",
"id" : "FB1",
"nom" : "Donuts",
"prix" : 1,99,
"offre spéciale" : false,
"stock" : 0
}

Rubriques connexes 

Page de référence des fonctions (liste des catégories)

Page de référence des fonctions (liste alphabétique)

A propos des formules

A propos des fonctions

Définition de rubriques de type Calcul

Utilisation des opérateurs dans les formules

Utilisation des fonctions JSON