JSON : global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 4 minutes de lecture
  • 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().

    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 périmètre.
    // 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 - decode(String str)

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

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

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

    Tableau 5. Paramètres
    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().

    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(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().

    JSON.stringify() convertit une valeur en notation JSON en utilisant les directives suivantes :
    • 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(){}) ou JSON.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.
    Tableau 8. Paramètres
    Nom Type Description
    Jsonobject Objet Objet JSON à transformer en chaîne de caractères.
    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);