我正在使用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中引用它。我需要在客户端这样做。有什么想法吗?
答案 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>