0
respostas

Montar JSON com JavaScript

Ferramentas utilizadas:

  1. Zabbix
  2. JavaScript
  3. JSON

Situação:

O Zabbix é uma ferramenta de monitoração que podemos utilizar JavaScript para ajudar nas coletas de dados. Eu tenho uma necessidade de montar um JSON baseado nas informações que vem de um outro JSON que pego de uma API, o Zabbix precisa montar esse JSON para poder montar o sistema de coletas dele, então estou usando o JavaScript para pegar os dados do JSON que vem da API e montar um JSON do Zabbix para utilizar em suas 'features'. Mas o seguinte erro anda ocorrendo:

TypeError: cannot read property 'steps' of undefined

at [anon] (duktape.c:59386) internal

at [anon] (function:4) preventsyield

JSON da API

[
   {
      "execution":{
         "id":"ac06e441-h6t4-24j4-db59-1j26c5c6b82k",
         "link":"https://link.generico.teste/api/36798?executionId=ac06e441-h6t4-24j4-db59-1j26c5c6b82k&endDate=2022-08-10",
         "steps":[
            {
               "status":"SUCCESS",
               "order":5,
               "duration":1520,
               "setup_times":{
                  "frustration":90133,
                  "warning":82376,
                  "timeout":23035
               },
               "name":"Carrega Me Ajuda",
               "pwxi":72.14209775283789,
               "category":"C",
               "type":"system",
               "slug":"carrega-me-ajuda"
            },
            {
               "status":"SUCCESS",
               "order":3,
               "duration":5851,
               "setup_times":{
                  "frustration":29751,
                  "warning":22501,
                  "timeout":33751
               },
               "name":"Carrega Teste do JSON",
               "pwxi":95.74179775280899,
               "category":"D",
               "type":"system",
               "slug":"carrega-teste-json"
            }
         ],
         "status":"SUCCESS",
         "score":{
            "pwxi":72.14209775283789
         },
         "start_time":"2022-08-10T10:24:00.000-03:00",
         "total_duration":{
            "system":1520
         }
      },
      "robot":{
         "name":"Alura - Ajuda Ai",
         "location":{
            "lon":-12.6629,
            "lat":-90.1234
         },
         "id":"VA-13K",
         "type":"cloud",
         "link":"link.generico.teste/api/robot/CA-03D"
      },
      "company":{
         "name":"Alura",
         "id":12345
      },
      "script":{
         "name":"Web Alura",
         "id":12345,
         "type":"custom",
         "link":"link.generico.teste/api/script/44298"
      },
      "install":{
         "name":"Alura",
         "id":12345,
         "link":"link.generico.teste/api/install/47468"
      }
   }
]

JavaScript para criar o novo JSON

var source = JSON.parse(value),
    data = [];

source.execution.steps.forEach(function(v){
    data.push({
        "{#NAME}": v.name,
        "{#CATEGORY}": v.category,
        "{#TYPE}": v.type,
        "{#SLUG}": v.slug})
});

return JSON.stringify(data);

Meu conhecimento em JS é bem básico, tive que procurar em alguns fóruns para chegar até esse código, mas ele não esta funcionando, se alguém puder me dar uma ajuda. A ideia é através desse código, montar um JSON com as informações do JSON da API.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software