2013-01-23 20 views
68

पर शून्य मान वाले गुणों को दबाएं मैंने एक एएसपी.Net वेब एपीआई प्रोजेक्ट बनाया है जिसका उपयोग मोबाइल एप्लिकेशन द्वारा किया जाएगा। मुझे property: null के रूप में उन्हें वापस करने के बजाय शून्य गुणों को छोड़ने के लिए प्रतिक्रिया जेसन की आवश्यकता है।ASP.NET वेब एपीआई

मैं यह कैसे कर सकता हूं?

उत्तर

106

WebApiConfig में:

config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore}; 

या, आप अधिक नियंत्रण चाहते हैं, तो आप पूरे फ़ॉर्मेटर की जगह ले सकता:

var jsonformatter = new JsonMediaTypeFormatter 
          { 
           SerializerSettings = 
            { 
             NullValueHandling = NullValueHandling.Ignore 
            } 
          }; 

    config.Formatters.RemoveAt(0); 
    config.Formatters.Insert(0, jsonformatter); 
+1

धन्यवाद दोस्त .. यू अपने समय को बचाया .. –

+2

शर्म की बात है config.Formatters.XmlFormatter एक ही संपत्ति नहीं है ...:/ – RoboJ1M

+3

के बाद से Json.NET 5 (पिछले संस्करणों के लिए यकीन नहीं), आप भी कर सकते हैं इस: 'config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore' - यह शून्य मान किसी अन्य json क्रमबद्धता सेटिंग्स (गुण के पहले अक्षर पर लोअर केस अक्षरों में) की तरह रीसेट किए बिना निपटने अद्यतन करेगा –

3

आप vNext उपयोग कर रहे हैं vNext वेब एपीआई परियोजनाओं में,, इस ऐड startup.cs फ़ाइल के लिए कोड।

public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc().Configure<MvcOptions>(options => 
     { 
      int position = options.OutputFormatters.FindIndex(f => f.Instance is JsonOutputFormatter); 

      var settings = new JsonSerializerSettings() 
      { 
       NullValueHandling = NullValueHandling.Ignore 
      }; 

      var formatter = new JsonOutputFormatter(); 
      formatter.SerializerSettings = settings; 

      options.OutputFormatters.Insert(position, formatter); 
     }); 

    } 
18

मैं startup.cs फ़ाइल में कोड के इस टुकड़े ASP.NET5 1.0.0-beta7

services.AddMvc().AddJsonOptions(options => 
{ 
    options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; 
}); 
+0

.NetCore के लिए यह जवाब है ... धन्यवाद –

0

मैं जानता हूँ कि इस सूत्र कुछ साल के आसपास अब किया गया है का उपयोग कर के साथ समाप्त हो गया, लेकिन यदि आप JSON.NET दस्तावेज़ पर वापस जाते हैं, तो इसमें विभिन्न परिदृश्यों के लिए धारावाहिक JSON आकार को कम करने के मुद्दे से निपटने के तरीके के बारे में विवरण है, जैसे सभी शून्य को अनदेखा करना, सभी डिफ़ॉल्ट मानों को अनदेखा करना, केवल विशिष्ट गुणों के शून्य या डिफ़ॉल्ट मान को अनदेखा करना , आदि .:

http://www.newtonsoft.com/json/help/html/reducingserializedjsonsize.htm

संबंधित मुद्दे