Преобразование формата объекта JSON с помощью angularjs

0

Я новичок в 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"]}
                                }] ;

Может ли кто-нибудь навестить меня здесь?

Теги:

1 ответ

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);
  • 0
    Спасибо, это сработало. :)
  • 0
    Приятно знать, что это сработало для вас :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню