JSON - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 4 min. de leitura
  • A inclusão de script JSON fornece métodos para criar objetos JSON a partir de uma cadeia de caracteres e para transformar objetos JSON em cadeias de caracteres.

    Esta API tem métodos dinâmicos e estáticos. Você acessa os métodos dinâmicos criando um objeto JSON. Para usar os métodos dinâmicos em uma aplicação com escopo, adicione o prefixo global ao chamar o construtor. Você acessa os métodos estáticos usando o objeto JSON estático.

    O objeto JSON nativo do JavaScript ES5 é usado em vez dos métodos estáticos JSON. Se o seu script precisar do comportamento antigo, use os métodos encode() e decode().

    Este exemplo cria um objeto JSON.
    // obj is a JSON formatted object
    var parser = new JSON(); // encode() and decode() are dynamic methods.
    var str = parser.encode(obj);

    Os métodos encode() e decode() estão obsoletos. Em vez disso, use o objeto JavaScript JSON.

    Este exemplo cria um objeto JSON em um script com escopo.
    // obj is a JSON formatted object
    var parser = new global.JSON();
    var str = parser.encode(obj);
    
    Este exemplo usa os métodos estáticos.
    // 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()

    Cria uma instância da classe JSON.

    Esta classe está obsoleta. Em vez disso, use o objeto JavaScript JSON.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum

    JSON - decode (cadeia de caracteres str)

    Cria um objeto ou tipo primitivo a partir de uma cadeia de caracteres no formato JSON.

    Nota:
    Esta classe está obsoleta. Em vez disso, use o objeto JavaScript JSON.
    Tabela 2. Parâmetros
    Nome Tipo Descrição
    str Cadeia de caracteres Uma cadeia de caracteres no formato JSON.
    Tabela 3. Retorna
    Tipo Descrição
    Objeto Um objeto criado a partir da cadeia de caracteres especificada.
    var str = '{"name":"George","lastname":"Washington"}';
    var parser = new JSON();
    var obj = parser.decode(str);
    gs.info('The first name is '  + obj.name);

    Saída: o nome é George

    Para usar em um script com escopo.

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

    Saída: o nome é George

    JSON - encode(Object jsonObject)

    Cria uma cadeia de caracteres a partir de um objeto JSON.

    Nota:
    Esta classe está obsoleta. Em vez disso, use o objeto JavaScript JSON.
    Tabela 4. Parâmetros
    Nome Tipo Descrição
    jsonObject Objeto O objeto JSON a ser transformado em uma cadeia de caracteres.
    Tabela 5. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma cadeia de caracteres no formato JSON.
    var obj = {"name":"George","lastname":"Washington"};
    var parser = new JSON();
    var str = parser.encode(obj);
    gs.info('The object '  + str);

    Saída: o objeto {"lastname":"Washington","name":"George"}

    Para usar em um script com escopo.

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

    JSON - parse (cadeia de caracteres str)

    Cria um objeto ou tipo primitivo a partir de uma cadeia de caracteres no formato JSON.

    O objeto JSON nativo do JavaScript ES5 é usado em vez dos métodos estáticos JSON. Se o seu script precisar do comportamento antigo, use os métodos encode() e decode().

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    str Cadeia de caracteres Uma cadeia de caracteres no formato JSON.
    Tabela 7. Retorna
    Tipo Descrição
    Objeto Um objeto criado a partir da cadeia de caracteres especificada.
    var str = '{"name":"George","lastname":"Washington"}';
    var obj = JSON.parse(str);
    gs.info('The first name is '  + obj.name);

    Saída: o nome é George

    JSON - stringify(Object jsonObject)

    Cria uma cadeia de caracteres a partir de um objeto JSON.

    O método JSON.stringify() só pode converter números, cadeias de caracteres e objetos nativos Java em cadeias de caracteres. Ele não pode converter objetos definidos pelo usuário em cadeias de caracteres, a menos que esses objetos forneçam um método toJSON(). A chamada para current.sys_id() retorna um objeto GlideElement que não tem um método toJSON(), portanto, o valor de retorno para stringify está vazio: "{}". O objeto JSON nativo do JavaScript ES5 é usado em vez dos métodos estáticos JSON. Se o seu script precisar do comportamento antigo, use os métodos encode() e decode().

    JSON.stringify() converte um valor em notação JSON usando as seguintes diretrizes:
    • Se o valor tiver um método toJSON(), ele será responsável por definir os dados que são serializados.
    • Objetos boolianos, numéricos e de cadeia de caracteres são convertidos para os valores primitivos correspondentes durante a cadeia de caracteres; de acordo com a semântica de conversão tradicional.
    • Se uma função, indefinido ou um símbolo for encontrado durante a conversão, ele será omitido (quando for encontrado em um objeto) ou censurado para nulo (quando for encontrado em uma matriz). JSON.stringify() também retorna indefinido ao passar valores "puros", como JSON.stringify(function(){}) ou JSON.stringify(undefined).
    • Todas as propriedades codificadas por símbolo são ignoradas, mesmo ao usar uma função de substituição ().
    • As instâncias de Data implementam a função toJSON() retornando uma cadeia de caracteres (a mesma que date.toISOString()), portanto, são tratadas como cadeias de caracteres.
    • Os números Infinito e NaN, bem como o valor nulo, são todos considerados nulos.
    • Para todas as outras instâncias de objeto, somente suas propriedades enumeráveis são serializadas.
    Tabela 8. Parâmetros
    Nome Tipo Descrição
    jsonObject Objeto Objeto JSON a ser transformado em uma cadeia de caracteres.
    Tabela 9. Retorna
    Tipo Descrição
    Cadeia de caracteres Cadeia de caracteres no formato JSON.
    var obj = {"name":"George","lastname":"Washington"};
    var str =  JSON.stringify(obj);
    gs.info('The object '  + str);
    

    Saída: o objeto {"name":"George","lastname":"Washington"}

    Também é possível definir uma função de substituição () e usá-la na chamada de stringify (). Esta função aproveita o método GlideElement.toString() para fornecer uma representação de cadeia de caracteres do objeto 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);