在服务器端,我有一个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(),就像被映射的Banks一样,应该是一个数组,没有任何元素,因为我可以对其进行迭代,并且在尝试时要打印第一个元素,控制台会显示undefined。杰森有问题吗?或我没有正确地映射它。

最佳答案

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

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

09-25 18:12