У меня есть дата-объект в своем коде Javascript описывается следующим образом:KnockoutJS Переплет список объектов из вызова AJAX
//Data Object that represents products
function Product(n, p, t, d) {
this.name = ko.observable(n);
this.price = ko.observable(p);
tags = typeof (t) !== 'undefined' ? t : [];
this.tags = ko.observableArray(tags);
discount = typeof (d) !== 'undefined' ? d : 0;
this.discount = ko.observable(discount);
this.formattedDiscount = ko.computed(function()
{ return (this.discount() * 100) + "%"; }
,this);
}
Тогда у меня есть вызов AJAX для извлечения данных в формате JSON
$(document).ready(function() {
$.ajax({
type: "POST",
url: "ShoppingCartExampleExample.aspx/SendData",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
}
});
});
вызов AJAX работает, я получил это как результат:
[
{"Discount":0,
"Name":"Chocolate",
"Price":"7.99"
"tags": ["Mars","Snickers"]
},
{"Discount":0.05,
"Name":"Beer",
"Price":"3.99"
"tags": ["Large","Extra"]
}
]
Как я мог сопоставить этот список объектов полученное от вызова AJAX к моему объекту Data? Я хотел бы сопоставить этот список с наблюдаемым массивом, а также сопоставить массив меток с наблюдаемым массивом, потому что у меня есть привязка foreach, которая заполняет таблицу HTML для представления продуктов и тегов.
Спасибо