处理JSON响应阵列
问题描述:
我有一个JSON响应从后端 JSON如下:处理JSON响应阵列
{
"json": {
"response": {
"servicetype": "1",
"functiontype": "10011",
"statuscode": "0",
"statusmessage": "Success",
"data":{
"roleid": 36,
"rolename": "Product Managers",
"divisionlabel": "Department ",
"subdivisionlabel": "Category",
"roleinformation": {
"QA": [
{
"White Box Testing": 10
}
]
}
},
{
"roleid": 38,
"rolename": "Managers",
"divisionlabel": "Department ",
"subdivisionlabel": "Category",
"roleinformation": {
"QA": [
{
"Black Box Testing": 10
}
]
}
}
}
}
}
}
我曾经在一个下拉$ scope.model.rolename插入我的角色名。
如果我的角色名称被选为产品经理,我想给出我的$ scope.maxcount值的值为"White Box Testing": 10
。它应该是动态的,根据选择的值会改变。现在在下拉菜单中,如果我选择Manager,$ scoope.maxcount for manager的值将会改变。我已经完成,直到下拉,不知道后处理。
JS:
` `UserService.getAssignRoles(json).then(function(response) {
if (response.json.response.statuscode == 0 && response.json.response.statusmessage == 'Success')
{
$scope.model.roles= [], assignrolesArray = [];
assignrolesArray = unasresdata.concat(assresdata);
$scope.model.assignroles = assignrolesArray;
}
});
HTML:
<select class="form-control" name="role"
ng-model="model.rolename"
ng-change="getassignRole(model.rolename)">
<option selected>Select Roles</option>
<option ng-repeat="role in model.assignroles track by $index"
value="{{role.rolename}}">{{role.rolename}}</option>
</select>
<input type = "text" ng-model=$scope.maxcount>
答
你可以通过你的model.assignroles和范围值到这个getassignRole()函数,并从,你可以得到属性并将其设置为你的范围变量。
请安装lodash库并注入它。
HTML
ng-change="getassignRole(model.assignroles, model)"
JS
$scope.getassignRole= function(model.assignroles, rolename){
console.log(model.assignroles);
var test = _.filter(model.assignroles, function(o){
return o.rolename === rolename;
})
console.log(rolename);
console.log(test[0].roleinformation);
};
样品的jsfiddle:https://jsfiddle.net/alpeshprajapati/5kpxzrgf/1/
然后,您可以访问所需的属性。
希望它有帮助。
https://jsfiddle.net/keyurshah24/5kpxzrgf/ –