2015-06-05 14 views
0

這是類:序列化c#對象集合,如何獲取引用對象的某些屬性?

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

我使用Json.net序列化它的收藏,但我不希望被序列化的父對象,只需要ID: 什麼我教人口會:

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

我已閱讀關於Serialization Attributes,但沒有得到解決方案。

+0

你需要反序列化,在閱讀時將ID轉換回父? – dbc

+0

@dbc不需要。只需要parent_id。 – phiree

回答

0

要做到這一點是添加父ID的只得到屬性(私有或爲您喜歡公開),和序列化,忽視了實際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; } } 
}