13

मैं JSON पर अपनी कस्टम ऑब्जेक्ट को क्रमबद्ध करने के लिए DataContractJsonSerializer का उपयोग कर रहा हूं। लेकिन मैं उन डेटा सदस्यों को छोड़ना चाहता हूं जिनके मान null हैं। यदि DataMembernull है कि नोड JSON स्ट्रिंग में नहीं आना चाहिए।डेटाकंट्रैक्टजसनसेरियलाइज़र नल मानों के साथ नोड्स को छोड़ने के लिए

मैं इसे कैसे प्राप्त कर सकता हूं? साथ काम करने के लिए मुझे एक सरल code snippet दें।

उत्तर

31

आप संपत्ति [DataMember] विशेषता में उपयोग कर सकते हैं। उस विशेषता के साथ चिह्नित सदस्यों के लिए, उनके मान आउटपुट नहीं होंगे।

[DataContract] 
public class MyType 
{ 
    [DataMember(EmitDefaultValue = false)] 
    public string Prop1 { get; set; } 
    [DataMember(EmitDefaultValue = false)] 
    public string Prop2 { get; set; } 
    [DataMember(EmitDefaultValue = false)] 
    public string Prop3 { get; set; } 
} 
public class Test 
{ 
    public static void Main() 
    { 
     var dcjs = new DataContractJsonSerializer(typeof(MyType)); 
     var ms = new MemoryStream(); 
     var data = new MyType { Prop2 = "Hello" }; 
     dcjs.WriteObject(ms, data); 

     // This will write {"Prop2":"Hello"} 
     Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray())); 
    } 
} 
+0

बहुत धन्यवाद @carlosfigueira – Kishor