2017-05-03 2 views
0

Ich entwickle gerade eine kleine Anwendung mit einer JSON-Datei. Ich habe ein Problem mit meinen Daten. Ich muss meine Daten filtern. Zum Beispiel möchte ich alle Daten für eine bestimmte Benutzer-ID, aber ich weiß nicht, wie das geht. Hier sind ein Beispiel für meine JSON-Datei:Filterdaten in einer JSON-Datei

[{ 
    "ConsoPhot_Id": "7924", 
    "idLotImport": 166, 
    "Date_Id": 20160601, 
    "Orga_Id": "86094", 
    "NbTache": 35, 
    "NbCopie": 143, 
    "NbCopieBW": 56, 
    "NbCopieCouleur": 87, 
    "MtTotal": 3.53 
}, 
{ 
    "ConsoPhot_Id": "7925", 
    "idLotImport": 166, 
    "Date_Id": 20160601, 
    "Orga_Id": "86537", 
    "NbTache": 291, 
    "NbCopie": 969, 
    "NbCopieBW": 622, 
    "NbCopieCouleur": 347, 
    "MtTotal": 15.61 
}, 
{ 
    "ConsoPhot_Id": "7926", 
    "idLotImport": 166, 
    "Date_Id": 20160601, 
    "Orga_Id": "86386", 
    "NbTache": 7, 
    "NbCopie": 32, 
    "NbCopieBW": 31, 
    "NbCopieCouleur": 1, 
    "MtTotal": 0.16 
}, 
{ 
    "ConsoPhot_Id": "7927", 
    "idLotImport": 166, 
    "Date_Id": 20160601, 
    "Orga_Id": "86084", 
    "NbTache": 2, 
    "NbCopie": 3, 
    "NbCopieBW": 3, 
    "NbCopieCouleur": 0, 
    "MtTotal": 0.01 
}, 
{ 
    "ConsoPhot_Id": "7928", 
    "idLotImport": 166, 
    "Date_Id": 20160701, 
    "Orga_Id": "86094", 
    "NbTache": 33, 
    "NbCopie": 68, 
    "NbCopieBW": 31, 
    "NbCopieCouleur": 37, 
    "MtTotal": 1.53 
}, 

Zum Beispiel, ich will für Orga_Id: „86094“ alle Daten im JSON-Datei. Das einzige, was ich tun kann, nimmt alle Daten mit diesem zum Beispiel:

d3.json("Data.json", function(error, data) { 
    var NbCopie = data.map(function(d) { 
     return d.NbCopie; 
    }); 

Antwort

1

Sie können Array#filter()

Der folgende Code verwenden in ES6

ist

const data =[{"ConsoPhot_Id":"7924","idLotImport":166,"Date_Id":20160601,"Orga_Id":"86094","NbTache":35,"NbCopie":143,"NbCopieBW":56,"NbCopieCouleur":87,"MtTotal":3.53},{"ConsoPhot_Id":"7925","idLotImport":166,"Date_Id":20160601,"Orga_Id":"86537","NbTache":291,"NbCopie":969,"NbCopieBW":622,"NbCopieCouleur":347,"MtTotal":15.61},{"ConsoPhot_Id":"7926","idLotImport":166,"Date_Id":20160601,"Orga_Id":"86386","NbTache":7,"NbCopie":32,"NbCopieBW":31,"NbCopieCouleur":1,"MtTotal":0.16},{"ConsoPhot_Id":"7927","idLotImport":166,"Date_Id":20160601,"Orga_Id":"86084","NbTache":2,"NbCopie":3,"NbCopieBW":3,"NbCopieCouleur":0,"MtTotal":0.01},{"ConsoPhot_Id":"7928","idLotImport":166,"Date_Id":20160701,"Orga_Id":"86094","NbTache":33,"NbCopie":68,"NbCopieBW":31,"NbCopieCouleur":37,"MtTotal":1.53}]; 
 

 
const key = "Orga_Id"; 
 
const value= "86094"; 
 
const result = data.filter(d=>d[key]==value); 
 

 
console.log(result);

+0

Okay, das ist toll, aber nur um eine Klarstellung, meine JSON-Datei ist sehr groß (42802 Zeilen) gibt es eine andere Lösung in ES6 als 'const Daten' so etwas wie JSON.read oder so ähnlich ? Vielen Dank. –

+0

Sie können den Code in dem von Ihnen bereitgestellten Code 'd3.json ('Data.json', Funktion (e, data) {data.filter (...)}' – Weedoze

+0

@Downvoter Warum? – Weedoze

2

kann mit nativen Array-Verfahren Array.filter

 var NbCopie = data.filter(function(value) { 
      return value.Orga_Id == "86094"; 
    }); 
0

ein Array-Filter tun können Sie Jquery für das gleiche verwenden wie diese

**$.each(data, function (i, data) { 
       if (data.Orga_Id == "86094") 
       //then the data; 
      });** 
Verwandte Themen