C#从QueryString反序列化复杂对象
我被迫使用C#从QueryString反序列化复杂对象,c#,asp.net,arrays,query-string,deserialization,C#,Asp.net,Arrays,Query String,Deserialization,我被迫使用GET请求将复杂对象传递给我的应用程序 如何反序列化查询字符串,如下所示: ?people[andy]=12&people[bob]=43&people[charlie]=53&items=89&items=123&x=zulu 像这样的自定义对象 public class myClass { public Dictionary<string, int> people { get; set; } public int
GET
请求将复杂对象传递给我的应用程序
如何反序列化查询字符串,如下所示:
?people[andy]=12&people[bob]=43&people[charlie]=53&items=89&items=123&x=zulu
像这样的自定义对象
public class myClass {
public Dictionary<string, int> people { get; set; }
public int[] items { get; set; }
public string x { get; set; }
}
公共类myClass{
公共字典人物{get;set;}
公共int[]项{get;set;}
公共字符串x{get;set;}
}
除了通过&
将其拆分并通过结果循环手动设置每个值之外,还有更好(更复杂)的方法吗
如果您能控制应用程序的发送端,我强烈建议您使用不同的编码方法,以使解析更容易。我只需要对整个对象进行JSON编码,然后对JSON进行URIencode(如果必须在查询字符串中) URI的大小(包括查询字符串)通常有相当小的限制(大约2K个字符)。如果您被迫使用HTTP,这取决于您的用例以及您是否对此有控制权,POST可能更可取 有关反序列化JSON的一些方法,请参见此问题:
你在寻找比拆分字符串和设置“myClass”对象属性更复杂的东西吗?啊,我没有想到做类似于
?json=%7B%22myName%22%3A%22Greg%22%7D的事情,不用肉眼转换URIencoding,这看起来很正确:-)