JSON : global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 4 minutes de lecture
  • L’include de script JSON fournit des méthodes pour créer des objets JSON à partir d’une chaîne et pour transformer des objets JSON en chaînes.

    Cette API a des méthodes dynamiques et statiques. Pour accéder aux méthodes dynamiques, créez 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().

    Cet exemple crée un objet JSON.
    // 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.

    Cet exemple crée un objet JSON dans un script inclus dans le champ d’application.
    // obj is a JSON formatted object
    var parser = new global.JSON();
    var str = parser.encode(obj);
    
    Cet exemple utilise les méthodes statiques.
    // 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 : JSON()

    Crée une instance de la classe JSON.

    Cette classe est obsolète. Utilisez plutôt l’objet JSON JavaScript.

    Tableau 1. Paramètres
    Nom Type Description
    Néant

    JSON : decode(str chaîne)

    Crée un type d’objet ou primitif à partir d’une chaîne au format JSON.

    Remarque :
    Cette classe est obsolète. Utilisez plutôt l’objet JSON JavaScript.
    Tableau 2. Paramètres
    Nom Type Description
    str Chaîne Chaîne au format JSON.
    Tableau 3. Renvoie
    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 champ d’application.

    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(objet jsonObject)

    Crée une chaîne à partir d’un objet JSON.

    Remarque :
    Cette classe est obsolète. Utilisez plutôt l’objet JSON JavaScript.
    Tableau 4. Paramètres
    Nom Type Description
    objet jsonObjet Objet Objet JSON à transformer en chaîne.
    Tableau 5. Renvoie
    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 champ d’application.

    var obj = {"name":"George","lastname":"Washington"};
    var parser = new global.JSON();
    var str = parser.encode(obj);
    gs.info('The object '  + str);

    JSON : analyser (str chaîne)

    Crée un type d’objet ou 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().

    Tableau 6. Paramètres
    Nom Type Description
    str Chaîne Chaîne au format JSON.
    Tableau 7. Renvoie
    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(objet 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, sauf si ces objets 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().

    JSON.stringify() convertit une valeur en notation JSON en suivant les directives suivantes :
    • Si la valeur a une méthode toJSON(), elle est chargée de définir les données qui sont sérialisées.
    • Les objets booléens, numériques et chaînes sont convertis en valeurs primitives correspondantes lors de la stringification ; conformément à la sémantique traditionnelle de conversion.
    • Si une fonction, indéfinie ou un symbole est rencontré lors de la conversion, il est soit omis (lorsqu’il se trouve dans un objet), soit censuré à null (lorsqu’il se trouve dans un tableau). JSON.stringify() renvoie également undefined lors de la transmission de valeurs « pures », telles que JSON.stringify(function(){}) ou JSON.stringify(undefined).
    • Toutes les propriétés lié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 renvoyant une chaîne (la même que date.toISOString()), elles sont donc traitées comme des chaînes.
    • 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.
    Tableau 8. Paramètres
    Nom Type Description
    objet jsonObjet Objet Objet JSON à transformer en chaîne.
    Tableau 9. Renvoie
    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);