Фильтровать данные в файле JSON
В настоящее время я занимаюсь разработкой небольшого приложения с использованием файла JSON. У меня проблема с моими данными. Я должен отфильтровать свои данные. Например, мне нужны все данные для определенного идентификатора пользователя, но я не знаю, как это сделать. Вот пример моего файла JSON:
[{
"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
},
Например, я хочу для Orga_Id
: "86094
"все данные в файле JSON. Единственное, что я могу сделать, это взять все данные, например:
d3.json("Data.json", function(error, data) {
var NbCopie = data.map(function(d) {
return d.NbCopie;
});
3 ответа
Решение
Ты можешь использовать Array#filter()
Следующий код находится в ES6
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);
Может сделать фильтр массива с помощью собственного метода массива Array.filter
var NbCopie = data.filter(function(value) {
return value.Orga_Id == "86094";
});
Вы можете использовать JQuery для того же, как это
**$.each(data, function (i, data) {
if (data.Orga_Id == "86094")
//then the data;
});**