2016-09-28 144 views
0

JSON以密鑰值:從JSON響應

{ 
     "json": { 
     "response": { 
      "servicetype": "1", 
      "functiontype": "10011", 
      "statuscode": "0", 
      "statusmessage": "Success", 
      "data": { 
      "unassignedroles": [ 
       {"roleid":"1", 
       "roleinformation": { 
        "QA": [ 
        { 
         "White Box Testing": 0 
        }, 
        { 
        "Black Box Testing": 10 
        } 

        ] 
       } 
       }, 
       { 
`    "roleid":"2"`, 
       "roleinformation": { 
        "1": [ 
        { 
         "A": 0 
        } 
        ] 
       } 
       }, 
       { 
       "roleid":"3", 
       "roleinformation": { 
        "D": [ 
        { 
         "B": 0 
        } 
        ] 
       } 
       } 
      ] 
      } 
     } 
     } 
    } 

我需要通過我的鑰匙在我的表中的值。我儲存在我$scope.roleInfo = response.json.data.unassignedRoles[i].roleinformation;

現在從$scope.roleInfo例如,我有

QA [ 
      { 
       "White Box Testing": 0 
      }, 
      { 
      "Black Box Testing": 10 
      } 

      ] 

如何動態地根據所選擇的角色ID給予重點QA,白盒測試和表黑盒測試。對於每個角色ID,我將擁有不同的密鑰名稱。

+0

你想在一個表中顯示這些? – Hmahwish

+0

是的,我想在表格中顯示它們。 –

回答

0

在您的例子中,roleInformation子對象(因此$scope.roleInfo對象)只有一個鍵,所以如果你這樣做:

for (i in $scope.roleInfo) 
    console.log(i) // i == "QA" 

「循環」將只運行一次,您可以提取所需值。

所以用同樣的方法,你可以

<tr ng-repeat="(key, value) in roleInfo"> 
    <td>{{ key }}</td> 

    <td ng-repeat="details in value"> 
     <p ng-repeat"(subkey, subvalue) in details">{{ subkey }} : {{ subvalue }}</p> 
    </td> 
</tr> 
+0

您好,感謝您的幫助,但它適用於只需一個鍵就更換其他關鍵,如果我有兩個值而且這個html代碼不工作。我試了一下。 –

0

將您的JSON到的範圍對象,並重復它在每個如下。

angular.forEach($ scopeObject,函數(值,鍵){}

您將獲得的 「鑰匙」,而反覆發生。 通過這種方法可以過濾來自JSON列表中的 「關鍵」。

+0

可以請給我任何例子,我對此有點新。 –