处理JSON响应阵列

处理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> 
+0

https://jsfiddle.net/keyurshah24/5kpxzrgf/ –

你可以通过你的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/

然后,您可以访问所需的属性。

希望它有帮助。