Ich bin für die Suche nach einer JSON-Datei abhängig von Benutzereingaben von der vorherigen Seite mit Unterstreichung in einer Express-Js-App. Dies ist, was ich bisher getan:Filtern eines JSON-Objekts in Node/expressjs
var fs = require('fs');
var contents = fs.readFileSync("public/files/testFile.json");
var obj = JSON.parse(contents);
var gender = req.query.gender
var filtered = _.where(obj.elements, {gender: true}); // elements is the array I want to filter
Die json ich Filter bin versucht, ist die folgende:
{
"elements": [
{
"id": 0,
"man": true,
"url": "https://pbs.twimg.com/media/CfRi_u8aaW8AfQvI7v.jpg"
},
{
"id": 1,
"Woman": true,
"url": "https://pbs.twimg.com/media/CfZ-8ikafWsAAngQGP.jpg"
}
]
}
Beachten Sie, dass, wenn ich das gleiche tun die Variable Geschlecht von „Mann zu ändern "Es funktioniert ordnungsgemäß.Sieht aus wie funktioniert eine Variable für eine Suche wie diese nicht. Ich habe 2 Fragen:
- Was könnte ich tun, damit es funktioniert?
- Gibt es einen besseren Weg, um das Problem zu begegnen?
Bitte zeigen Sie uns die JSON –
Klassische Fall von missbräuchlichen Schlüsseln als Datenträger. Die Schlüssel des Objekts sollten nicht "Mann" und "Frau" genannt werden. Das sind Daten. Nennen Sie es "Geschlecht" und geben Sie ihm unterschiedliche Werte. – Tomalak
Das wäre eine effizientere Möglichkeit, es zu tun, aber immer noch nicht das Filterproblem zu lösen;). Ich möchte einige neue Felder hinzufügen, so dass ich nicht weiß, ob eine solche Filterung die beste Option ist. – ZanattMan