0

我正在查看 Knockout 教程,在 JSON 示例中,它假定 Web 服务将返回这样的 JSON(如果它是 JSON 对象数组):

[  { "id": 1}, { "id": 2}, { "id": 3} ]

我将如何处理返回不同结构 JSON 的服务?

[ { "resource": { "id": 1} }, { "resource": { "id": 2} }, { "resource": { "id": 3 } } ]

我想要 id 名称,而不是资源名称。

谢谢。

编辑:我修复了资源的不正确格式(根据马特)。JSON 是有效的,只是不是 KO 示例所期望的格式。

4

1 回答 1

2

您应该能够遍历您的数据并将其展平(假设您的原始数据是 JavaScript 对象数组而不是 JSON):

var original = JSON.parse([ { "resource": { "id": 1} }, { "resource": { "id": 2} }, { "resource": { "id": 3 } } ]);
var flattened = [];
for (var i=0; i < original.length; i++) {
    flattened.push(original[i].resource);
}

如果您真的需要再次将输出返回为 JSON,您可以使用JSON.stringify

于 2013-03-28T19:12:28.577 回答