2016-06-18 15 views
0

Iは、その応答
"PROP1" 以下の通りであるAPIを有する: "SomeValu1"、
"PROP2": "SomeValue2"、
"prop3":ヌル、
「prop4を":" SomeValue4 "動的APIレスポンスからプロパティを削除

問題は、入力に基づいて、いくつかのプロパティがnull(期待される動作)になり、応答しない場合は 返されます。 "SomeValu1"、
"PROP2":このような何か

"PROP1"(prop3がない) "SomeValue2"、
"prop4は":ベースとされるプロパティはnullになります "SomeValue4"

ランタイムロジック上。どのように私はこれを行うことができます任意のアイデア?

答えて

6

あなたはJSONで作業している場合、あなたはこれを試すことができます。

JsonConvert.SerializeObject(yourObject, 
         Newtonsoft.Json.Formatting.None, 
         new JsonSerializerSettings { 
          NullValueHandling = NullValueHandling.Ignore 
         }); 
0

DataContract属性はプロパティは、falseに設定した場合、それはシリアライズされませんEmitDefaultValueを呼びかけています。

Dtoクラスにこれらの属性を追加すると、求めている機能が得られます。 https://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute.emitdefaultvalue(v=vs.110).aspx

例:

[DataContract] 
public class ExampleDto 
{ 
    [DataMember(Name="prop1", EmitDefaultValue=false)] 
    public string Prop1 {get;set;} 
    [DataMember(Name="prop2", EmitDefaultValue=false)] 
    public string Prop2 {get;set;} 
    [DataMember(Name="prop3", EmitDefaultValue=false)] 
    public string Prop3 {get;set;} 
    [DataMember(Name="prop4", EmitDefaultValue=false)] 
    public string Prop4 {get;set;} 
} 

あなたもシリアライズするとき、それは名前です変更するプロパティNameを使用することができます。

関連する問題