【问题标题】:Deserializing json data from jquery post method directly to string array将jquery post方法中的json数据直接反序列化为字符串数组
【发布时间】:2012-03-08 15:26:54
【问题描述】:

有没有办法将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# 字符串数组

提前致谢。

【问题讨论】:

    标签: asp.net json deserialization jquery-post


    【解决方案1】:

    想办法!

    使用字符串化数组对象而不是直接命名的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);
    

    谢谢!!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多