2011-03-02 11 views
3

私はJSONオブジェクトの配列を持っています。その中には値が配列であるキーと値のペアを含むものがあります。ASP.NET WebサービスへのAJAX要求 - 使用するパラメータタイプは何ですか?

例:

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

EDIT:誤っ使用括弧の代わりに括弧。

私はjQueryのを使用してASP.NET WebサービスにAJAXを経由して、これを送信しようとしています:

$.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" 
}); 

また、私はJSONデータを受け入れ、解析するSomeFunctionパラメータにどのようなデータタイプが必要なのですか?

Fooはこのように定義され
public void SomeFunction(IEnumerable<Foo> items) 
{ 
    ... 
} 

:私はあなただけの上に列挙されるだろうと仮定して、私はIEnumerable<T>を使用していた私の例では

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

それはにマップする

インデクサーが必要な場合は、配列T[]として定義することもできます。

+0

非常に役に立ちます。ありがとうございました! – zdyn

+0

@ZDYN、私は助けてうれしいです。 –

関連する問題