使用angularjs转换JSON对象格式

时间:2015-07-01 06:56:40

标签: angularjs

我是Angularjs.的新手。我想更改JSON对象代码的格式,我将其转换为一些新的格式.Below是格式。

$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 :(得分: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);