2013-03-28 86 views
0

我期待通過淘汰賽的教程,並在JSON的例子,它假定Web服務將返回JSON像這樣(如果它是JSON對象的數組):處理來自服務的「錯誤」格式化的JSON?

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

我會如何處理一種返回不同結構的JSON的服務?

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

我想要id名稱,而不是資源名稱。

謝謝。

編輯:我修復了資源上的錯誤格式(每馬特)。 JSON是有效的,而不是KO示例所期望的格式。

+4

第二個例子甚至沒有有效的JSON。 '資源'應該用引號引起來。 –

+0

糟糕。我修正了代碼示例。 – Stephen

回答

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

+0

馬特,我修正了我的例子。這是一個JSON對象的混亂。但是,正如你所說的,我可以循環並平滑它。所以現在我可以做類似var flattenedArray = ko.observableArray(flattened); – Stephen

+1

只是'JSON.parse'它。我會編輯我的答案。 –

相關問題