如何将一些数据从Json推送到AngularJS中的新数组?

时间:2015-03-28 22:26:02

标签: arrays json angularjs

让我说我有这个Json ..

{
    "name": "Mark",
    "gender": "male",
    "account1": {
        "accountNo": 1201,
        "balance": 300
    },
    "account2": {
        "accountNo": 1354,
        "balance": 5000
    }
}    

我期待的是......

$scope.myArray = [
    {
        "accountNo": 1201,
        "balance": 300
    },
    {
        "accountNo": 1354,
        "balance": 5000
    }
];

在AngularJS中,我如何选择Json数据的某些部分并迭代地将其推送到数组中(我的意思是,当我有account1,account2 account3或更多时,它仍然可以将它们添加到数组中)。

3 个答案:

答案 0 :(得分:3)

你通常可以直接分配数组,但在这种情况下,这不是一个选项,因为你的数组是假的。

理想情况下,您希望能够做到这个答案(相关问题)的作用:How to return and array inside a JSON object in Angular.js这只是

$scope.myArray = json.accounts;

但是,如上所述,您没有帐户数组,因此您需要创建一个。

var accounts = [];
for(var key in json){
 if( !json.hasOwnProperty(key) // skip prototype extensions
  || !json[key].hasOwnProperty("accountNo") //skip non account objects
 ) continue; 
 accounts.push(json[key]);
}

现在你可以使用这个数组

$scope.myArray = accounts;

答案 1 :(得分:0)

您可以像数组一样访问Json数据。与var foo = { ... , 'bar' = 'value', ... }一样,您可以通过此foo获得for['bar']值。因此,通过了解这一点,您只需执行类似

的操作
var arr = [];
for (var i = 0; i < 10; i++) {
    arr.push(foo['account'+i]);
}

虽然这与angularjs无关。

答案 2 :(得分:-1)

您可以使用JSON.parse()这将JSON转换为javascript对象,然后您可以从对象中提取所需的任何数据并将其推送到您自己的对象中。详情请见:http://www.w3schools.com/json/json_eval.asp