2012-10-07 26 views
2

我要回到低谷的Json這樣的對象:WCF JSON - 不回那些空人領域的所有

User={ 
    id:4, 
    name:'Peter', 
    nickname:null 
} 

所以,我的C#對象的樣子:

class User { 
    public int Id {get;set;} 
    public string name {get;set;} 
    public string nickname {get;set;} 
} 

WCF全自動將C#翻譯成上面的Json。但如果暱稱爲空,我怎麼能告訴WCF完全不歸還,所以JSON返回的將是

User={ 
    id:4, 
    name:'Peter' 
} 
+0

你能否接受答案,如果它解決了你的問題?謝謝 :) – Juri

回答

4

據我知道WCF使用DataContractJsonSerializer序列化對象JSON。通常你那裏DataMember屬性標註的一類,它再次有EmitDefaultValue屬性(默認爲true;見docs here

獲取或設置指定是否序列化字段或屬性是默認 值的值序列化。

所以,如果你這樣做了以下它可能工作:

[DataContract] 
class User { 

    [DataMember] 
    public int Id {get;set;} 

    [DataMember] 
    public string name {get;set;} 

    [DataMember(EmitDefaultValue=false)] 
    public string nickname {get;set;} 
} 

注意,我並沒有通過自己試試這個。你必須檢查,但它聽起來像可以工作。