Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
create a json from array of string using javascript

After scraping an html table I have stored my data in the variable:

var data = ["header1", "header2", "a1", "a2", "b1", "b2", "c1", "c2"];

I want to create a json file in the form:

var json = [
  {
    "header1":"a1", 
    "header2":"a2"
  },
  {
    "header1":"b1", 
    "header2":"b2"
  },
  {
    "header1":"c1", 
    "header2":"c2"
  }
]

I know that I need

var headers={}; 

and load it with

headers["header1"]
headers["header2"]

I also need

var jsonObj = []; 

and push the array headers inside jsonObj:

jsonObj.push(headers);

Is it possible to create it?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

I'll make some assumptions, and then attempt to answer your question.

To me, it seems your table looks something like:

header1 header2
a1 a2
b1 b2
c1 c2

Simply starting with the array you already have, we can then just pick out two and two values at the time. See the code below

const COLUMN_COUNT = 2
const data = ["header1", "header2", "a1", "a2", "b1", "b2", "c1", "c2"]

// this removes the headers from the data-list, 
// and stores them in the headers variable
const headers = data.splice(0, COLUMN_COUNT)
const output = []

while(data.length > 0) {
  const row = {}
  const values = data.splice(0, COLUMN_COUNT)
  for(const [idx, value] of values.entries()) {
    const header = headers[idx]
    row[header] = value
  }
  output.push(row)
}

console.log(output)

about 4 years ago · Juan Pablo Isaza Relatório

0

There is actually no relation between header and the values, but assuming the first two elements are always header1 and header2 and the next 1 pair will be the value of header1 and header2 respectively, this might do it

const data = ["header1", "header2", "a1", "a2", "b1", "b2", "c1", "c2"];
const res = [];
const h1 = data[0];
const h2 = data[1];
data.splice(0, 2);


for (let i = 0; i < data.length; i++) {
    if (i % 2 != 0) {
        const payload = {};
        payload[h1] = data[i - 1];
        payload[h2] = data[i];
        res.push(payload);
    }
}

console.log(res)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda