2

有没有办法将 jquery post 方法发送的数组反序列化为直接 c# 字符串数组(字符串 [])?

我尝试发布这样的数据

$.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

Figure it out!

Using stringified array object rather than direct named json parameter to pass as data solved my problem

I am now posting like this

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

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

And now able to deserialize json response directly to string array like this

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

Thanks!!

于 2012-02-17T11:52:49.597 回答
1

你可以开发自己的课程,但我建议你使用这个:http: //json.codeplex.com/

于 2012-02-17T08:45:43.460 回答