序列化c#对象集合,如何获取引用对象的某些属性?

时间:2015-06-05 08:15:27

标签: json.net json-deserialization

这是班级:

 public class Category
 {
     public guid id,
     public string name,
     public Category Parent            
 }

我正在使用Json.net来序列化它的集合,但我不希望将Parent对象序列化,只需要id:    我所期待的:

 [
  {'name':'cate1','id':1000,'parent':999}
  {'name':'cate2','id':1001,'parent':998}
 ]

我已阅读Serialization Attributes但未获得解决方案。

1 个答案:

答案 0 :(得分:0)

最简单的方法是为父ID添加get-only属性(根据需要为private或public),并序列化,忽略实际的Parent属性:

public class Category
{
    public int id;

    public string name;

    [JsonIgnore]
    public Category Parent;

    [JsonProperty("parent", NullValueHandling = NullValueHandling.Ignore)]
    int? ParentId { get { return Parent == null ? (int?)null : Parent.id; } }
}