2016-06-16 75 views
0

我有一個類,自定義JSON序列

partial class Customer 
{ 
    [JsonProperty] 
    public string Name { get; set; } 

    [JsonProperty] 
    public string Address{ get; set; } 

    [JsonProperty] 
    public string CardInfo { get; set; }   

    public int CustomerId { get; set; } 
} 

當我序列化此,在客戶不存在。這就是我想讓它工作的原因。 我有一個單獨的方法,我需要發送customerId回來。所以可能我應該使用自定義序列化程序?有沒有辦法使用相同的類來實現這一點。

+0

你的代碼是什麼樣的,它是序列化客戶類? – Jeff

+0

如果這是您需要處理多種類型的多個屬性,您可以考慮使用[基於查詢參數的條件成員序列化?]的答案(https://stackoverflow.com/questions/29713847/conditional-member-序列化基礎上的查詢參數)。 – dbc

+0

@Jeff我只是在內置轉換器中使用json.net。 JsonConvert.SerializeObject(客戶) – katie77

回答

0

可以使用JSON.Net的conditional serialization特點:

partial class Customer 
{ 
    // Ignoring the property since it's only used to indicate if we should serialize 
    // CustomerId or not 
    [JsonIgnore] 
    public bool IncludeCustomerId {get;set;} 

    [JsonProperty] 
    public string Name { get; set; } 

    [JsonProperty] 
    public string Address{ get; set; } 

    [JsonProperty] 
    public string CardInfo { get; set; }   

    public int CustomerId { get; set; } 

    public bool ShouldSerializeCustomerId() 
    { 
     return IncludeCustomerId; 
    } 
} 

現在Json.Net將只序列CustomerId如果設置IncludeCustomerIdtrue