• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

184
Vistas
Javascript Filtrado de datos JSON

Ejemplo de datos JSON:

 { "assignments": [{ "date": "2022-04-01", "lName": "lastname", "uId": "12345", "uCode": "LName1", "fName": "FName1 ", "aName": "AsignmentName1", "aId": "998" }] }

Me gustaría filtrar los siguientes datos para obtener el contenido de un elemento específico en función de la búsqueda de un nombre de asignación.

Por ejemplo, en términos similares a SQL

 Select * FROM assignments WHERE `aName` = 'AssignmentName1'

Estoy seguro de que esto es simple, pero tengo problemas con los métodos para lograrlo.

Gracias

about 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Primero tienes que analizar la cadena JSON:

 const parsedJSON = JSON.parse(jsonString);

El objeto devuelto contiene todos los datos de su cadena JSON. Para acceder a la matriz de asignaciones, puede usar la notación de puntos.

 const assignments = parsedJSON.assignments;

Si no necesita admitir navegadores antiguos, ES6 tiene una función útil para encontrar el valor en un objeto. Use la función "buscar" y pase una función que devuelva verdadero para el elemento que está buscando:

 const selectedAssignment = assignments.find( (assignment)=> { return assignment.aName=="AssignmentName2"; });

Si no quiere usar ES6, puede usar un bucle for.

 var assignments = JSON.parse(jsonString).assignments; function getAssignmentWithName(name) { for (var i = 0; i < assignments.length; i++) { if (assignments[i].aName == name) { return assignments[i]; } } return false; } var selectedAssignment = getAssignmentWithName("AssignmentName1");
about 3 years ago · Juan Pablo Isaza Denunciar

0

Soy nuevo aquí, pero si tiene acceso a JavaScript moderno, haría algo como:

 const data = JSON.parse('{"assignments":[{"date":"2022-04-01","lName":"lastname","uId":"12345","uCode":"LName1","fName":"FName1 ","aName":"AsignmentName1","aId":"998"}]}'; const yourMatch = data.assignments.find(c => c.aName === 'AssignmentName1');
  • Dado que data.assignments es una matriz, puede llamar a la función find() en ella. Esta función toma una función de 'búsqueda'/lambda como argumento.
  • Esta función de búsqueda básicamente toma un elemento y decide si es el que busca o no, es decir, devuelve un valor booleano.
  • En mi ejemplo, la función de flecha es c => c.aName === 'AssignmentName1' , que es más corta y más fácil de leer que una definición de función normal. (Puedes llamar a c como quieras, es más limpio de esta manera).
  • Puede intercambiar find() con filter() , si acepta varios resultados y no solo el primero.
about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda