¿Cómo itero sobre una estructura JSON? [duplicate]

4 minutos de lectura

¿Como itero sobre una estructura JSON duplicate
Flueras Bogdan

Tengo la siguiente estructura JSON:

[{ "id":"10", "class": "child-of-9" }, { "id": "11", "classd": "child-of-10" }]

¿Cómo itero sobre él usando JavaScript?

  • stackoverflow.com/questions/1050674/…

    – Máx.

    3 de julio de 2009 a las 7:11

  • “jquery o javascript”? ¡jquery está escrito en javascript!

    – AlikElzin-kilaka

    28 de agosto de 2014 a las 12:09

  • Debería ser “jQuery o JavaScript puro”.

    – Rasshu

    17 de septiembre de 2015 a las 11:16

  • “¿Cómo puedo iterar sobre una estructura JSON?” tu no Lo analiza, con lo cual ya no tiene JSON, y recorre la matriz resultante.

    –TJ Crowder

    9 de mayo de 2017 a las 13:24

  • Hecho iterador IIFE github.com/eltomjan/ETEhomeTools/blob/master/HTM_HTA/… tiene predefinidos (básicos) DepthFirst y BreadthFirst next y la capacidad de moverse dentro de la estructura JSON sin recursividad.

    – Tomás

    9 de julio de 2019 a las 7:38


1646212266 178 ¿Como puedo seleccionar un elemento por su nombre con jQuery
tu amigo Ken

var arr = [ {"id":"10", "class": "child-of-9"}, {"id":"11", "class": "child-of-10"}];
    
for (var i = 0; i < arr.length; i++){
  document.write("<br><br>array index: " + i);
  var obj = arr[i];
  for (var key in obj){
    var value = obj[key];
    document.write("<br> - " + key + ": " + value);
  }
}

nota: el método for-in es genial para objetos simples. No es muy inteligente para usar con el objeto DOM.

  • No olvide revisar dentro de su for key in obj bucle que obj.hasOwnProperty(key) — de lo contrario, algún día podrías encontrar otras llaves abriéndose paso en obj que no quieres, si alguien amplía el prototipo por ejemplo…

    – Funka

    17 de enero de 2014 a las 18:59

  • Hola, ¿puedo preguntar si quiero usar esto para obtener una matriz json remota, cómo lo hago? por favor dame alguna orientación!

    –Hanzawa Naoki

    22 de agosto de 2014 a las 2:44

  • @AlexanderSupertramp se configura usando notación literal de matriz con objetos en notación literal de objeto. En JavaScript, las matrices son esencialmente también objetos. Por lo tanto, todavía me referiría a que el arr está configurado usando JSON.

    – Tu amigo Ken

    19 de noviembre de 2014 a las 16:57

  • @musicformellons Consulte desarrollador.mozilla.org/en/docs/Web/JavaScript/Reference/… para un enfoque moderno (no compatible con IE).

    – devios1

    23 de noviembre de 2015 a las 19:55

  • ¡Nunca nunca! – use un for…in-loop para enumerar sobre una matriz.

    – Stephan Weinhold

    11 de agosto de 2016 a las 7:09

1646755695 481 ¿Como itero sobre una estructura JSON duplicate
marqués wang

Tomado de documentos jQuery:

var arr = [ "one", "two", "three", "four", "five" ];
var obj = { one:1, two:2, three:3, four:4, five:5 };

jQuery.each(arr, function() {
  $("#" + this).text("My id is " + this + ".");
  return (this != "four"); // will stop running to skip "five"
});

jQuery.each(obj, function(i, val) {
  $("#" + i).append(document.createTextNode(" - " + val));
});

  • Esta es una sintaxis muy confusa. ¿Puedes explicarlo? ¿También puede proporcionar la salida?

    – AlikElzin-kilaka

    23 de junio de 2011 a las 17:10

  • La respuesta debería haberse dado en JavaScript, no en JQuery.

    –Wayne Hartman

    31 de mayo de 2013 a las 3:10

  • @WayneHartman Simpatizo con su punto de vista, pero la pregunta original dice “jquery o javascript”. Parece que el error fue no tener una etiqueta jquery en la pregunta.

    – vlasits

    13 de enero de 2014 a las 18:39

  • Del mismo modo, las ofertas de lodash _.para cada (alias _.each para compatibilidad con guiones bajos) para lograr lo mismo.

    – Ciudad

    25 de octubre de 2014 a las 5:29


  • El OP solicitó jQuery o JavaScript, por lo que la respuesta es adecuada en mi libro.

    – Kirby L. Wallace

    3 de julio de 2017 a las 19:44

¿Como itero sobre una estructura JSON duplicate
AlikElzin-kilaka

Utilizar para… de:

var mycars = [{name:'Susita'}, {name:'BMW'}];

for (var car of mycars) 
{
  document.write(car.name + "<br />");
}

Resultado:

Susita
BMW

  • La Susita es una variable dependiente de la cultura, ¿no? 🙂

    – Gil Shalit

    20 de diciembre de 2010 a las 12:26

  • Correcto, una variable de primer nivel, como BMW 😉

    – AlikElzin-kilaka

    13 de enero de 2011 a las 9:45

  • Esta es una matriz regular, no JSON.

    – jonasespelita

    7 de octubre de 2011 a las 7:13

  • @SachinPrasad No, i es un nombre de propiedad.

    – JLRishe

    20 de enero de 2015 a las 17:28

  • Funciona tanto en arreglos como en jsons.

    – AlikElzin-kilaka

    9 de junio de 2015 a las 8:22

¿Como itero sobre una estructura JSON duplicate
abdulbasit

Por favor, hágamelo saber si no es fácil:

var jsonObject = {
  name: 'Amit Kumar',
  Age: '27'
};

for (var prop in jsonObject) {
  alert("Key:" + prop);
  alert("Value:" + jsonObject[prop]);
}

1646755698 4 ¿Como itero sobre una estructura JSON duplicate
Swapnil Godambe

si este es tu dataArray:

var dataArray = [{"id":28,"class":"Sweden"}, {"id":56,"class":"USA"}, {"id":89,"class":"England"}];

luego:

$(jQuery.parseJSON(JSON.stringify(dataArray))).each(function() {  
         var ID = this.id;
         var CLASS = this.class;
});

  • La mejor respuesta usando JQuery. Codifico datos del backend usando AJAX, así que no usé la función ‘stringify’. ¡Código claro y hermoso!

    – danigonlinea

    17 de agosto de 2015 a las 23:14

1646755699 133 ¿Como itero sobre una estructura JSON duplicate
borde de gerrit

Copiado y pegado de http://www.w3schools.comno hay necesidad de la sobrecarga de JQuery.

var person = {fname:"John", lname:"Doe", age:25};

var text = "";
var x;
for (x in person) {
    text += person[x];
}

RESULTADO: John Doe 25

  • La mejor respuesta usando JQuery. Codifico datos del backend usando AJAX, así que no usé la función ‘stringify’. ¡Código claro y hermoso!

    – danigonlinea

    17 de agosto de 2015 a las 23:14

ejemplo mootools:

var ret = JSON.decode(jsonstr);

ret.each(function(item){
    alert(item.id+'_'+item.classd);
});

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad