Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

223
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!