将json post方法中的json数据直接反序列化为字符串数组

时间:2012-02-17 07:56:15

标签: asp.net json deserialization jquery-post

有没有办法将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);

由于字符串[]

中没有属性selectedTeams [],因此无法正常工作

我知道定义像这样的类的方法

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

然后进行反序列化。

但我认为这是一个不必要的定义类,所以没有办法直接将json数组转换为c#string数组

提前致谢。

2 个答案:

答案 0 :(得分: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);

谢谢!

答案 1 :(得分:1)

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