2

私は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に自動的に変換しました。しかし、ニックネームがnullの場合、WCFにそれをまったく返さないように指示するにはどうすればよいので、返されるJSOnは次のようになります。

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

1 に答える 1

4

私が知る限り、WCF は DataContractJsonSerializer を使用してオブジェクトを JSON にシリアル化します。DataMember通常、再びプロパティを持つ属性で注釈が付けられたクラスがありEmitDefaultValueます(デフォルトはtrue;ここのドキュメントを参照してください)

シリアル化されるフィールドまたはプロパティの既定値をシリアル化するかどうかを指定する値を取得または設定します。

したがって、次のようなことをするとうまくいくかもしれません。

[DataContract]
class User {

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

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

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

注、私はこれを自分で試していません。確認する必要がありますが、機能するようです。

于 2012-10-07T08:52:42.017 に答える