有两个类:
class Document {
public DocumentItem[] DocumentItemList { get; set; }
}
class DocumentViewModel : Document{
public new DocumentItemViewModel[] DocumentItemList { get; set; }
}
派生类中的 DocumentItemList
隐藏基类中的DocumentItemList
。
将DocumentViewModel
对象序列化为JSON:
DocumentViewModel instance = CreateObject(); // object gets created
string serializedContent = new JavaScriptSerializer().Serialize(instance);
序列化字符串中有两个DocumentItemLists:
{
"DocumentItemList": [{
... etc. ...
}],
"DocumentItemList": null
}
为什么会这样?当数据反序列化时,这会导致错误。
(顺便说一句,我用Newtonsoft.JSON测试了序列化,并且序列化器没有这个错误。)
答案 0 :(得分:1)
如果您想坚持使用JavaScriptSerializer
,您可以考虑在要忽略的属性上使用[JsonIgnore]
属性,这将讨论线程中{{3}的阴影属性}}
你走了:
class Document {
public DocumentItem[] DocumentItemList { get; set; }
}
class DocumentViewModel : Document{
[JsonIgnore]
public new DocumentItemViewModel[] DocumentItemList { get; set; }
}