Tengo problemas para hacer un bucle de la clave/valor de JSON mediante la función jQuery .each()
Inicialmente tengo un JSON como este:
json = {"aaa":[
{"id":"1","data":"aaa1data"}
,{"id":"2","data":"aaa2data"}
],
"bbb":[
{"id":"3","data":"bbb1data"}
]
}
Y me gustaría recorrer todos los elementos clave/valor dentro del JSON (aaa y bbb) y recuperar las matrices JSON internas para volver a realizar el bucle, así que intenté
$(json).each(function(index,data)
{
var zzz = data;
$(zzz).each(function(index,data))
{
//some other stuff
}
}
Sin embargo, descubrí que la primera función .each() considerará todo el json como una estructura única y no se repetirá en la clave de su elemento. El parámetro de datos recibido de la función .each() es siempre el json original. Nunca puedo obtener la referencia que apunta a la matriz JSON interna de aaa y bbb.
¿Cuál sería el problema aquí y cómo debo hacer un bucle para todos los elementos clave/valor en un JSON por jQuery correctamente?
Arun P Johny
Como tiene un objeto, no un contenedor jQuery, necesita usar una variante diferente de $.cada uno()
$.each(json, function (key, data) {
console.log(key)
$.each(data, function (index, data) {
console.log('index', data)
})
})
Manifestación: Violín
-
¡Funciona! Gracias por su respuesta con la explicación ya que no sabía que $.each() y $(selector).each() no funcionan de la misma manera :).
– pasador
14 de noviembre de 2013 a las 5:09
-
@Arun p Johny –
console.log('index', data)
aquí los datos son parámetros o índice de matriz, se confunden con la palabra datos, si solo quiero un segundo valor, ¿cómo puedo obtenerlo? sin identificación?– 151291
23 de diciembre de 2015 a las 9:15
-
mi json es
{ "0":{"tech_id":"35","tech_name":"Ajax"}, "1":{"tech_id":"36","tech_name":"Ajax"} }
– 151291
23 de diciembre de 2015 a las 9:38
Con un objeto JSON simple, no necesita jQuery:
for (var i in json) {
for (var j in json[i]) {
console.log(json[i][j]);
}
}