【发布时间】:2015-03-17 14:41:16
【问题描述】:
我有一个名为 ShipFromAddress 的具体类,我在下面这样反序列化我的 json
JavaScriptSerializer jss = new JavaScriptSerializer();
oShipFromAddress = jss.Deserialize<ShipFromAddress>(Request.Cookies["ShipFromAddress"].Value);
具体类
public class ShipFromAddress
{
public string Weight
{
get;
set;
}
public string addressLine1
{
get;
set;
}
public string addressLine2
{
get;
set;
}
public string city
{
get;
set;
}
public string postcode
{
get;
set;
}
public string countrycode
{
get;
set;
}
public string StateCode
{
get;
set;
}
}
我不想创建或使用具体类,而是想借助动态对象或匿名类概念即时进行反序列化。请用示例代码指导我。
我有两个解决方案.....看起来不错
1) 当需要将多个数据序列化传递给匿名时,示例将是
var query = from employee in employees select new { Name = employee.Name, Id = employee.Id };
LogEmployees(query);
public void LogEmployees (IEnumerable<dynamic> list)
{
foreach (dynamic item in list)
{
string name = item.Name;
int id = item.Id;
}
}
方法参数类型必须是IEnumerable<dynamic> because LogEmployees() 函数需要多个数据
2) 传递单个数据时,代码如下所示
public class Program
{
private static void Thing(dynamic other)
{
Console.WriteLine(other.TheThing);
}
private static void Main()
{
var things = new { TheThing = "Worked!" };
Thing(things);
}
}
【问题讨论】:
标签: c# asp.net json deserialization