我必须通过这样的对象返回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#obkect转换为上面的Json。但是如果nickname为null,我怎么能告诉WCF根本不返回它,所以返回的JSOn将是
User={
id:4,
name:'Peter'
}
答案 0 :(得分: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;}
}
注意,我自己没试过。你必须检查,但听起来它可以工作。