Я новичок в Angularjs.I хочу изменить формат объектного кода JSON, который я получаю в каком-то новом формате. Ниже приведен формат.
$scope.filters={"filters":
[{"filterId":"106","filtername":"Service Line","filterValue":"ADI"},
{"filterId":"107","filtername":"Service Line","filterValue":"L"},
{"filterId":"108","filtername":"Service Line","filterValue":"M"},
{"filterId":"109","filtername":"Location","filterValue":"N"},
{"filterId":"110","filtername":"Band","filterValue":"O"}
]};
Я хочу, чтобы это было изменено на нижний формат с помощью angularjs.
$scope.filters=[{"filters":
{"ServiceLine":["ADI","L","M"],
"Location":["N"],
"Band":["0"]}
}] ;
Может ли кто-нибудь навестить меня здесь?
Я согласен с kachhalimbu, что вы можете использовать underscore.js или lodash.js и использовать его функцию map, чтобы преобразовать объект json в другую форму.
Если вы все еще хотите преобразовать без использования другой структуры, вы можете сделать что-то вроде этого:
var filterObject = { "filters": {} };
angular.forEach($scope.filters.filters, function(filter) {
if(!filterObject.filters[filter.filtername]) {
filterObject.filters[filter.filtername] = [];
}
filterObject.filters[filter.filtername].push(filter.filterValue)
});
filterObject будет содержать тот формат, который вы хотите использовать, после чего вы можете сделать что-то вроде этого:
$scope.filters = [];
$scope.filters.push(filterObject);