2

jquery postメソッドによって送信された配列を直接c#string array(string [])に逆シリアル化する方法はありますか?

このようなデータを投稿してみました

$.post(url,
          {
           'selectedTeams[]'=['Team1','Team2']
          },
          function(response) {}, 'json');

そして、C#クラスでこのように消費しようとしています

string jsonData = new StreamReader(context.Request.InputStream).ReadToEnd();
var selectedTeams = new JavaScriptSerializer().Deserialize<string[]>(jsonData);

string []にプロパティselectedTeams[]がないため、機能しませんでした。

私はこのようなクラスを定義する方法を知っています

class Teams
{
   public string[] SelectedTeams{get;set;}    
}

次に、逆シリアル化を実行します。

しかし、それはクラスを定義する必要がないと思うので、json配列をc#文字列配列に直接変換する方法はありません

前もって感謝します。

4

2 に答える 2

5

それを理解してください!

データとして渡すために直接名前付きjsonパラメーターではなく文字列化された配列オブジェクトを使用して問題を解決しました

私は今このように投稿しています

var Ids = new Array();
Ids.push("Team1");
Ids.push("Team2");

$.post(url, JSON.stringify(Ids), function(response) {}, 'json');

そして今、このように文字列配列に直接json応答を逆シリアル化することができます

string jsonData = new StreamReader(context.Request.InputStream).ReadToEnd();
var selectedTeams = new JavaScriptSerializer().Deserialize<string[]>(jsonData);

ありがとう!!

于 2012-02-17T11:52:49.597 に答える
1

独自のクラスを開発することもできますが、これを使用することをお勧めします:http: //json.codeplex.com/

于 2012-02-17T08:45:43.460 に答える