使用ko.mapping发出映射Json字符串

时间:2013-10-12 15:55:49

标签: javascript asp.net json knockout.js webmethod

在服务器端,我有一个Asp.Net Web应用程序,WebMethod返回一个像这样序列化的Json字符串:

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)映射该结果,然后使用console.log(mappedBanks)我打印的所有内容都是c(),就像那个应该是数组的mappedBanks一样,没有元素因为我可以迭代它,当我尝试打印第一个元素时,控制台会说undefined。 Json有问题吗?或者我没有正确映射它。

1 个答案:

答案 0 :(得分:2)

ko.mapping.toJSON要求第一个参数是对象,而不是数组。您的选择是使您的JSON编码数组成为属性值。

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