• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

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

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 Report

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

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error