Asp.net mvc Json反序列化失败
有人能解释一下为什么反序列化方法失败吗Asp.net mvc Json反序列化失败,asp.net-mvc,json,Asp.net Mvc,Json,有人能解释一下为什么反序列化方法失败吗 [Test] public void Serialize_Deserialize_ExpandObject() { dynamic obj = new ExpandoObject(); obj.Name = "Claudio"; obj.Age = 32; JavaScriptSerializer ser = n
[Test]
public void Serialize_Deserialize_ExpandObject()
{
dynamic obj = new ExpandoObject();
obj.Name = "Claudio";
obj.Age = 32;
JavaScriptSerializer ser = new JavaScriptSerializer();
string json = ser.Serialize(obj as IDictionary<string, object>);
Console.WriteLine(json);
IDictionary<string, object> deserialize = ser.Deserialize<IDictionary<string, object>>(json);
Assert.IsTrue(deserialize.ContainsKey("Name"));
Assert.IsTrue(deserialize.ContainsKey("Age"));
}
ExpandoObject似乎被序列化为一个字典数组,而不是一个字典 它被序列化为[{Key:Name,Value:Claudio},{Key:Age,Value:32}],而不是{Name:Claudio,Age:32} 我猜ExpandooObject还实现了一些其他接口,比如IEnumerable和IDictionary,所以Serialize方法将其视为数组。强制转换为IDictionary没有什么区别,因为它实际上并不改变传递给Serialize方法的内容。但这一切似乎都与文件相矛盾 您可以反序列化到列表,但我认为这不是非常有用