DataContractJsonSerializer动态对象反序列化
本文关键字:反序列化 对象 动态 DataContractJsonSerializer | 更新日期: 2023-09-27 18:13:50
我想用DataContractJsonSerializer代替任何第三方库,如Json。. NET我需要反序列化Json流,它可以是我的c#类之一,我不知道哪一个是我想做的是反序列化Json数据->确定这个对象的类型->做一些与反序列化对象根据这个对象的类型。有什么与DataContractJsonSerializer。类型属性?我对json很陌生
我想做的是反序列化json数据->确定这个对象的类型->根据这个对象的类型做一些反序列化的对象。有什么与DataContractJsonSerializer。类型属性?
是的,它与已知的类型有关。首先,需要在构造函数中指定要反序列化的类型。然后可以指定对象图中可能存在的类型
DataContractJsonSerializer Constructor (Type, IEnumerable)
但是我仍然建议你使用JSON。NET,它将比DataContractJsonSerializer更简单,性能甚至更好。在ASP。. NET Web API, JSON。. NET是默认的JSON序列化器。
或JavaScriptSerializer
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string, dynamic>>(strRet);
StringBuilder sbErr = new StringBuilder(string.Format("{0} ({1}): {2}", rep.StatusDescription, dict["code"], Environment.NewLine));
if ((dict["errors"] is Dictionary<string, dynamic>)) {
foreach (KeyValuePair<string, dynamic> item in dict["errors"]) {
sbErr.AppendFormat("{0}=", item.Key);
foreach (string item2 in item.Value)
sbErr.AppendFormat("{0}. ", item2);
}
}