2012-04-14 25 views
14

私はオブジェクトをシリアライズしていて、自分のWebサービスからjsonとして返しています。しかし、私は直列化されたjsonからヌルプロパティを省略しようとしています。これを行う方法はありますか?私はWeb Api MVC 4ベータ版を使用しています。MVC Web APIのJsonからNullプロパティを削除するWeb Api 4 Beta

+0

実際に私は外に出ようとしています。 – kkocabiyik

答えて

15

現在、ASP.NET Web API(there are plansは最終リリースでJson.Netを使用するために変更する)は、デフォルトでDataContractJsonSerializerを使用してJSONをシリアル化します。

したがって、標準のDataContract/DataMember属性を使用してシリアル化プロセスを制御できます。ヌルプロパティをスキップするには、EmitDefaultValueをfalseに設定します。

[DataContract] 
public class MyObjet 
{ 
    [DataMember(EmitDefaultValue = false)] 
    public string Prop1 { get; set; } 

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

あなたはJSON応答があなたがJson.NetJavaScriptSeralizerに建て使用してフォーマッタが含まれているWebAPIContribパッケージを使用することができますシリアライズされている方法についてのより多くのコントロールを持っているしたい場合。

9

Json.Netでは、NullValueHandling = NullValueHandling.Ignoreを使用してJsonPropertyAttributeを使用できます。ここでは、クラス全体でこれを行う方法はないように見えますが、クラスフィールド/プロパティごとに明示的にしかありません。

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 
public string SometimesNull { get; set; } 

FYI。 a reasonsがあります。なぜなら、Json.Netはデフォルトでヌル値でプロパティをシリアル化します。見て、あなたの場合に適用するこの理由のいくつかがあります。

関連する問題