JSON : global
L’API JSON fournit des méthodes permettant de créer des objets JSON à partir d’une chaîne et de transformer des objets JSON en chaînes.
Cette API a des méthodes dynamiques et statiques. Vous accédez aux méthodes dynamiques en créant un objet JSON. Pour utiliser les méthodes dynamiques dans une application incluse dans le périmètre, ajoutez le préfixe global lors de l’appel du constructeur. Vous accédez aux méthodes statiques à l’aide de l’objet JSON statique.
L’objet JSON natif JavaScript ES5 est utilisé à la place des méthodes statiques JSON. Si votre script a besoin de l’ancien comportement, utilisez les méthodes encode() et decode().
// obj is a JSON formatted object
var parser = new JSON(); // encode() and decode() are dynamic methods.
var str = parser.encode(obj);Les méthodes encode() et decode() sont obsolètes. Utilisez plutôt l’objet JSON JavaScript.
// obj is a JSON formatted object
var parser = new global.JSON();
var str = parser.encode(obj);
// obj is a JSON formatted object
var str = JSON.stringify(obj);
// str is a string containing content to be turned into a JSON formatted object
var obj = JSON.parse(str);
JSON - decode(String str)
Crée un objet ou un type primitif à partir d’une chaîne au format JSON.
| Nom | Type | Description |
|---|---|---|
| str | Chaîne | Chaîne au format JSON. |
| Type | Description |
|---|---|
| Objet | Objet créé à partir de la chaîne spécifiée. |
var str = '{"name":"George","lastname":"Washington"}';
var parser = new JSON();
var obj = parser.decode(str);
gs.info('The first name is ' + obj.name);
Sortie : Le prénom est George
À utiliser dans un script inclus dans le périmètre.
var str = '{"name":"George","lastname":"Washington"}';
var parser = new global.JSON();
var obj = parser.decode(str);
gs.info('The first name is ' + obj.name);
Sortie : Le prénom est George
JSON : encode(Object jsonObject)
Crée une chaîne à partir d’un objet JSON.
| Nom | Type | Description |
|---|---|---|
| Jsonobject | Objet | Objet JSON à transformer en chaîne. |
| Type | Description |
|---|---|
| Chaîne | Chaîne au format JSON. |
var obj = {"name":"George","lastname":"Washington"};
var parser = new JSON();
var str = parser.encode(obj);
gs.info('The object ' + str);
Sortie : l’objet {"lastname » :"Washington »,"name » :"George"}
À utiliser dans un script inclus dans le périmètre.
var obj = {"name":"George","lastname":"Washington"};
var parser = new global.JSON();
var str = parser.encode(obj);
gs.info('The object ' + str);
JSON : JSON()
Crée une instance de la classe JSON.
Cette classe est obsolète. Utilisez plutôt l’objet JSON JavaScript.
| Nom | Type | Description |
|---|---|---|
| Néant |
JSON : parse(chaîne str)
Crée un objet ou un type primitif à partir d’une chaîne au format JSON.
L’objet JSON natif JavaScript ES5 est utilisé à la place des méthodes statiques JSON. Si votre script a besoin de l’ancien comportement, utilisez les méthodes encode() et decode().
| Nom | Type | Description |
|---|---|---|
| str | Chaîne | Chaîne au format JSON. |
| Type | Description |
|---|---|
| Objet | Objet créé à partir de la chaîne spécifiée. |
var str = '{"name":"George","lastname":"Washington"}';
var obj = JSON.parse(str);
gs.info('The first name is ' + obj.name);
Sortie : Le prénom est George
JSON : stringify(Object jsonObject)
Crée une chaîne à partir d’un objet JSON.
La méthode JSON.stringify() ne peut convertir que des nombres, des chaînes et des objets natifs Java en chaînes. Il ne peut pas convertir les objets définis par l’utilisateur en chaînes, à moins que ces objets ne fournissent une méthode toJSON(). L’appel à current.sys_id() renvoie un objet GlideElement qui n’a pas de méthode toJSON(), donc la valeur de retour pour stringify est vide : « {} ». L’objet JSON natif JavaScript ES5 est utilisé à la place des méthodes statiques JSON. Si votre script a besoin de l’ancien comportement, utilisez les méthodes encode() et decode().
- Si la valeur a une méthode toJSON(), elle est responsable de la définition des données qui sont sérialisées.
- Les objets booléens, nombres et chaînes de caractères sont convertis en valeurs primitives correspondantes lors de la stringification ; conformément à la sémantique traditionnelle de la conversion.
- Si une fonction, undefined, ou un symbole est rencontré lors de la conversion, il est soit omis (lorsqu’il est trouvé dans un objet), soit censuré à null (lorsqu’il est trouvé dans un tableau). JSON.stringify() renvoie également undefined lors du passage de valeurs « pures », telles que
JSON.stringify(function(){})ouJSON.stringify(undefined). - Toutes les propriétés associées à des symboles sont ignorées, même lors de l’utilisation d’une fonction replacer().
- Les instances de Date implémentent la fonction toJSON() en retournant une chaîne (identique à date.toISOString()), elles sont donc traitées comme des chaînes de caractères.
- Les nombres Infinity et NaN, ainsi que la valeur null, sont tous considérés comme nuls.
- Pour toutes les autres instances d’objets, seules leurs propriétés énumérables sont sérialisées.
| Nom | Type | Description |
|---|---|---|
| Jsonobject | Objet | Objet JSON à transformer en chaîne de caractères. |
| Type | Description |
|---|---|
| Chaîne | Chaîne au format JSON. |
var obj = {"name":"George","lastname":"Washington"};
var str = JSON.stringify(obj);
gs.info('The object ' + str);
Sortie : L’objet {"name » :"George »,"lastname » :"Washington"}
Il est également possible de définir une fonction replacer() et de l’utiliser dans l’appel stringify(). Cette fonction exploite la méthode GlideElement.toString() pour fournir une représentation de chaîne de l’objet GlideElement.
function replacer(name, val) {
// convert GlideElement to string
if ( val && val.constructor === GlideElement ) {
return val.toString();
} else {
return val; // return as is
}
};
var s = global.JSON.stringify(json_obj, replacer);
gs.info("json="+s);