简化关联数组

时间:2013-12-19 19:52:35

标签: javascript angularjs cakephp

我正在使用CakePHP构建一个api。 Cake返回它的对象:

[
    {
        "Note": {
            "id": "1",
            "clas": "test",
            "obj_id": null,
            "note": "test"
        }
    },
    {
        "Note": {
            "id": "2",
            "clas": "another",
            "obj_id": null,
            "note": "another"
        }
    }
]

我想要做的就是取得结果,基本上摆脱了关键。像这样:

[
    {
            "id": "1",
            "clas": "test",
            "obj_id": null,
            "note": "test"
    },
    {
            "id": "2",
            "clas": "another",
            "obj_id": null,
            "note": "another"
    }
]

我基本上只是想让它更容易在Angular中引用它。我需要在客户端这样做。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

你可以像这样重构它:

var json = '[{"Note":{"id":"1","clas":"test","obj_id":null,"note":"test"}},{"Note":{"id":"2","clas":"another","obj_id":null,"note":"another"}}]';

var obj = JSON.parse(json);
var arr = [];
for (i = 0; i < obj.length; i++)
{
    arr.push(obj[i].Note);
}

工作示例here

注意)如果您的键值'Note'并不总是相同,这将发生巨大变化。在每个实例中,'Note'可能不会相同或者;这会产生一个不正确的键控对象。或者,如果你总是需要数组中的第一个对象,你可以改用obj[i][0]

更多注意事项如果您使用的是cakephp,使用Hash::会更容易,但如果您需要在客户端执行,这就是解决方案)。< / p>