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

221
Vistas
Cómo buscar el árbol JSON con jQuery

Tengo una pregunta sobre la búsqueda de JSON para obtener información específica. Por ejemplo, tengo este archivo JSON:

 { "people": { "person": [ { "name": "Peter", "age": 43, "sex": "male" }, { "name": "Zara", "age": 65, "sex": "female" } ] } }

Mi pregunta es, ¿cómo puedo encontrar a una persona en particular por su nombre y mostrar la edad de esa persona con jQuery? Por ejemplo, quiero buscar el JSON para una persona llamada Peter y cuando encuentro una coincidencia, quiero mostrar información adicional sobre esa coincidencia (sobre la persona llamada Peter en este caso), como la edad de la persona, por ejemplo.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

var json = { "people": { "person": [{ "name": "Peter", "age": 43, "sex": "male"}, { "name": "Zara", "age": 65, "sex": "female"}] } }; $.each(json.people.person, function(i, v) { if (v.name == "Peter") { alert(v.age); return; } });

ejemplo

Basado en esta respuesta , podrías usar algo como:

 $(function() { var json = { "people": { "person": [{ "name": "Peter", "age": 43, "sex": "male"}, { "name": "Zara", "age": 65, "sex": "female"}] } }; $.each(json.people.person, function(i, v) { if (v.name.search(new RegExp(/peter/i)) != -1) { alert(v.age); return; } }); });

Ejemplo 2

over 4 years ago · Santiago Trujillo Denunciar

0

Encontré que el ejemplo de jQuery.each() de ifaour es útil, pero agregaría que jQuery.each() se puede romper (es decir, detener) devolviendo falso en el punto donde encontró lo que está buscando:

 $.each(json.people.person, function(i, v) { if (v.name == "Peter") { // found it... alert(v.age); return false; // stops the loop } });
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar Jsel: https://github.com/dragonworx/jsel (para una divulgación completa, soy el propietario de esta biblioteca).

Utiliza un motor XPath real y es altamente personalizable. Se ejecuta tanto en Node.js como en el navegador.

Dada su pregunta original, encontraría a las personas por nombre con:

 // include or require jsel library (npm or browser) var dom = jsel({ "people": { "person": [{ "name": "Peter", "age": 43, "sex": "male"}, { "name": "Zara", "age": 65, "sex": "female"}] } }); var person = dom.select("//person/*[@name='Peter']"); person.age === 43; // true

Si siempre estuvo trabajando con el mismo esquema JSON, podría crear su propio esquema con jsel y poder usar expresiones más cortas como:

 dom.select("//person[@name='Peter']")
over 4 years ago · Santiago Trujillo 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