有没有办法将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数组
提前致谢。
答案 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/