我希望能夠轉換在我的web服務中通過ajax(jquery)傳遞的JSON對象。目前我可以得到它返回消息「Hello World」,但我不知道如何訪問傳遞的JSON數據,然後轉換爲IList類型的集合,以便我可以遍歷集合。我已經看了一下在計算器上,但我很困惑該怎麼做可以幫助我一些人。如何傳遞JSON數據並將其轉換爲WebSerivce中的對象
這裏是我的代碼:
的jQuery:
var data = { dvals: [{'Name' : 'Acer', 'Count' : '2'}, {'Name' : 'HP', 'Count' : '4'} ] };
function getProducts(json, pageIndex, pageSize) {
json["PageIndex"] = pageIndex;
json["PageSize"] = pageSize;
$.ajax({
type: 'POST',
url: '/website2/WebServices/GetProducts.asmx/GetProductsAndFilters',
data: JSON.stringify(json),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (responseText) {
//alert(responseText.d);
$('.console').html(responseText.d);
},
error: function (xhr, status, error) {
//var msg = JSON.parse(xhr.responseText);
//alert(msg.Message);
$('.console').html(xhr.responseText)
}
});
}
getProducts(data, '0', '2');
我的asp.net C#:
public class Filter
{
public string Name;
public int Count;
}
public class Product
{
public int Id;
public string Title;
public string ShortDescription;
public string Brand;
public string Model;
public double SellPrice;
public string DescountPercentage;
public int Votes;
public int TotalRating;
public double Rating
{
get
{
return Votes/TotalRating;
}
}
}
public class FiltersAndProducts
{
List<Filter> Filters;
List<Product> Products;
int PageIndex;
int PageSize;
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetProductsAndFilters()
{
return "Hello World";
}
您可以構建一個javascript對象(匹配您的c#類結構)並將其傳遞給您的Web服務。只要你的js的對象符合你的c#的類結構,就不需要顯式地將javascript對象轉換爲c#對象。 –
你能給我一個例如你在說什麼,我從來沒有這樣做過一段時間。我不知道你在說什麼。我想要做的是根據通過哪些過濾器來執行操作,並獲取與這些過濾器相關的產品。如果你在我的GetProductsAndFilters函數中給了我一個例子,我可能會明白你在說什麼 – ONYX