Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
Convert JSON to different format using the javascript

I have the JSON please see below and I need help to convert changing the format mentioned below. I want to move the data to different columns (format mentioned below)

JSON I have

const data =
[
    {
        "2":{
            "value":1.2
        },
        "3":{
            "values":{
                "10.0":1.3
            }
        },
        "4":{
            "value":1.6
        },
        "key":"abc",
        "count":2
    },
    {
        "2":{
            "value":2.2
        },
        "3":{
            "values":{
                "10.0":1.2
            }
        },
        "4":{
            "value":5.6
        },
        "key":"xyz",
        "count":22
    },
    
]

I want to change the above to the below format:

Expected format

const data =
[
    {
        col1: "1.2",
        col2: "1.3",
        col3: "1.6",
        col4: "abc",
        col5: "2"
    },
    {
        col1: "2.2",
        col2: "1.2",
        col3: "5.6",
        col4: "xyz",
        col5: "22"
    },
    
]
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

I believe this is what you are looking for.

I assumed there are just value or values properties and in values you only need the first one. If my assumption is correct here is your snippet below.

const data = [
  {
    '2': {
      value: 1.2,
    },
    '3': {
      values: {
        '10.0': 1.3,
      },
    },
    '4': {
      value: 1.6,
    },
  },
  {
    '2': {
      value: 2.2,
    },
    '3': {
      values: {
        '10.0': 1.2,
      },
    },
    '4': {
      value: 5.6,
    },
  },
];

const result = data.map((item) => {
  return Object.values(item)
    .reduce((acc, { value = null, values = null }, index) => {
      if (value) return { ...acc, [`col${index + 1}`]: String(value) };
      if (values) {
        const [firstItem = null] = Object.values(values);
        if (firstItem) return { ...acc, [`col${index + 1}`]: String(firstItem) };
      }
    }, {});
});

console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Here's a solution that flattens arbitrarily nested json inputs, assuming only that each column has only one primitive value. It takes advantage of the fact that arrays in js are really just objects with numeric keys.

const data = [
  {
    '2': { value: 1.2, },
    '3': { values: { '10.0': 1.3, }, },
    '4': { value: 1.6, },
  },
  {
    '2': { value: 2.2, },
    '3': { values: { '10.0': 1.2, }, },
    '4': { value: 5.6, },
  },
];

const flattenedValue = value => {
  while (typeof value == 'object' && value != null) 
    for (const v of Object.values(value)) 
      value = v; 
  return value;
};
const result = data.map(row => 
  Object.fromEntries(
    Object.values(row).map(flattenedValue).map((v, i) => [`col${i + 1}`, v])
  )
);

console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda