2011-03-02 56 views
3

我有一个JSON对象数组,其中一些包含值为数组的键/值对。对ASP.NET Web服务的AJAX请求 - 要使用哪种参数类型?

实施例:

var jsonArray = [{ "key1":"value1", "key2":["value21", "value22"]}, 
       { "key1":"value3", "key2":["value41", "value42"]}]; 

编辑:不留神使用括号来代替支架。

我试图使用jQuery通过AJAX发送这一个ASP.NET Web服务:

$.ajax({ 
    type: "post", 
    url: "example.asmx/SomeFunction" 
    data: "{ 'items': '" + JSON.stringify(jsonArray) + "' }", 
    contentType: "application/json;charset=utf-8", 
    dataType: "json" 
}); 

这是发送数据的正确方法是什么?另外,我需要在SomeFunction参数中接受和解析JSON数据的数据类型是什么?

回答

6

这是发送数据的正确方法吗?

号,以下会比较好:

$.ajax({ 
    type: "post", 
    url: "example.asmx/SomeFunction" 
    data: JSON.stringify({ items: jsonArray }), 
    contentType: "application/json;charset=utf-8", 
    dataType: "json" 
}); 

此外,什么数据类型,我需要在SomeFunction参数接受并解析JSON数据?

它将映射到:

public void SomeFunction(IEnumerable<Foo> items) 
{ 
    ... 
} 

其中Foo这样定义:

public class Foo 
{ 
    public string Key1 { get; set; } 
    public IEnumerable<string> Key2 { get; set; } 
} 

在我的例子我用IEnumerable<T>因为我相信你会只在枚举值,但如果你需要索引器,你也可以将它们定义为数组T[]

+0

非常有帮助。谢谢! – zdyn 2011-03-02 23:00:34

+0

@ZDYN,很高兴我能帮上忙。 – 2011-03-02 23:01:21