Manipulando JSON através de Interceptor JS

Uma das tarefas mais utilizadas em custom intercptors JS é a manipulação de JSONs, seja no fluxo de chamada ou de retorno do recurso. Porém, mesmo que essa manipulação seja muito utilizada, ainda surgem algumas dúvidas. Nesse artigo explicaremos como manipular JSONs nos interceptors JS da plataforma Sensedia.

 

O que é um JSON

JSON é uma estrutura que encapsula entre chaves conjuntos de atributos no formato chave : valor. Na maior parte das vezes pode ser convertido ou até mesmo considerado como um objeto String (texto puro).

Exemplo:

{

    "nome": "Icaro",

    "empresa": "Sensedia"

}

 

Manipulando

Ainda que JSONs possam ser considerados como texto, existem alguns meios que nos auxiliam na manipulação dos mesmos, como por exemplo efetuar o parse do texto JSON em um objeto JS que permita o acesso direto a cada atributo. Para isso temos 2 opções:

 

Utilizando objeto JSON

Utilizando o objeto JSON, nativo do Rhino, para efetuar o parse, temos o seguinte código:

var jsonObj = JSON.parse(json);

A partir desse momento, teremos na variável jsonObj, o JSON já convertido e pronto para a utilização. Porém, vale lembrar que para o parse funcionar, o texto JSON informado deve estar no formato esperado, sem nenhum erro ou caractere extra. Caso contrário, o parse não será efetuado. Ressaltando também que, por ser nativo do Rhino, esse objeto é mais performático que o segundo exemplo que será apresentado.

Tendo o objeto parseado, conseguimos acessar os atributos de duas formas:

  - objeto.atributo, que seguindo o exemplo seria jsonObj.nome

  - objeto["atributo"], que seguindo o exemplo seria jsonObj["nome"]

Para inserção de novos atributos ao objeto, a lógica é a mesma:

  - objeto.atributo = valor, que seguindo o exemplo seria jsonObj.cidade = "Campinas"

  - objeto["atributo"] = valor, que seguindo o exemplo seria jsonObj["cidade"] = "Campinas"

 

Utilizando objeto $json

Utilizando o objeto $json, criado pelo Sensedia, para efetuar o parse, temos o seguinte código:

var jsonObj = $json.parse(json);

Mais uma vez, a partir daqui temos o objeto JSON já convertido presente na variável jsonObj, mas com algumas pequenas vantagens. Por exemplo, o objeto da Sensedia efetua algumas tratativas antes de efetuar o parse. Caso haja uma vírgula após o fechamento do objeto JSON, o JSON não conseguirá parsear o texto, já o $json trata essa vírgula "sobrando" e consegue efetuar o parse sem problemas.

Com o objeto parseado, basta acessar os atributos desejados da seguinte maneira:

  - objeto.get("atributo"), que seguindo o exemplo seria jsonObj.get("nome")

Já na inserção de novos atributos, é necessário a utilização do método put:

  objeto.put(atributo,valor), que seguindo o exemplo seria jsonObj.put("cidade", "Campinas")

 

Sabendo então quais as possibilidades que temos para manipulação de JSONs, basta escolher e utilizar a que lhe agradou mais!!

Tem mais dúvidas? Envie uma solicitação

Comentários

Desenvolvido por Zendesk