2013-10-12 76 views
1

在服務器端,我有一個Asp.Net Web應用程序,一個WebMethod返回序列化就像一個JSON字符串這一個:問題映射JSON字符串與ko.mapping

Object { d= "[{"Id":"1","Name":"COMERCIAL BANK"}, 
{"Id":"2","Name":"AZTEC BANK"}, 
{"Id":"3","Name":"EL SALVADOR BANK"}]" } 

當我嘗試使用結果映射var mappedBanks = ko.mapping.fromJSON(data.d),然後使用​​所有我打印的是c(),就像mappedBanks,應該是一個數組,沒有元素,因爲我可以迭代它,當我嘗試打印第一個元素時,控制檯說undefined。 Json有問題嗎?或者我沒有正確地繪製它。

+0

JavaScript字符串在雙引號內不能有雙引號。你需要或者在內部/外部使用單引號(''')或者使用單引號(''') – Pavlo

回答

2

ko.mapping.toJSON要求第一個參數是對象,而不是數組。你的選擇是讓你的JSON編碼數組成爲屬性值。

var mappedBanks = ko.mapping.fromJS({ items: JSON.parse(data.d) }); 
console.log(mappedBanks.items); 
+0

我已經做了你告訴我的,但是當我打印「mappedBanks .Items「 –

+0

實際上它的工作原理,但我改變了這個」var mappedBanks = {items:JSON.parse(data.d)};「.. –

+0

你的代碼是相同的,除了'items'將是普通數組,不是observableArray。 –