2016-07-01 11 views
37

RC2 पर एक ही कोड ऊंट मामले के साथ जेसन प्रारूप देता है। नेटकोर 1.0 रिलीज के बाद मैंने नई परियोजना शुरू की और एक ही कोड लोअरकेस में जेसन लौट रहा है।एएसपीनेट कोर 1.0 वेब एपीआई कैमेलकेस

की कोशिश की कई समाधान लेकिन उनमें से कोई web-api-serialize-properties-starting-from-lowercase-letter

उत्तर

68
services 
    .AddMvc() 
    .AddJsonOptions(options => 
    { 
     options.SerializerSettings.ContractResolver 
      = new Newtonsoft.Json.Serialization.DefaultContractResolver(); 
    }); 

यह एक JSON ऑब्जेक्ट का नाम एक ही रहता है .NET वर्ग संपत्ति के रूप में।

+1

इसके लिए किस नामस्थान/संदर्भ की आवश्यकता है। कोई 'AddJsonOptions' नहीं है जिसे मैं –

+0

देख सकता हूं, इसकी एमवीसी 6.नामस्पेस माइक्रोसॉफ्ट। एक्सटेंशन। निर्भरता इंजेक्शन // माइक्रोसॉफ्ट के माध्यम से एमवीसी को कॉन्फ़िगर करने के लिए एक्सटेंशन विधियां। एक्सटेंशन। निर्भरता इंजेक्शन.आईएमवीसीबिल्डर। कक्षा एमवीसीजेसनएमवीसीबिल्डर एक्सटेंशन – Brivvirs

23

काम कर रहे थे आप JSON व्यवहार इस तरह से कॉन्फ़िगर कर सकते हैं:

public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc() 
        .AddJsonOptions(options => 
        { 
         options.SerializerSettings.ContractResolver = 
          new CamelCasePropertyNamesContractResolver(); 
        }); 
    } 
+7

यह वास्तव में डिफ़ॉल्ट व्यवहार है (दुर्भाग्यवश), वह डिफ़ॉल्ट नाम चाहता था, जैसा कि, संपत्ति के नामों में कोई बदलाव नहीं है, केस – Omu

+1

@ ओएमयू ये वास्तव में समान नहीं हैं (.NET कोर 2.0 में भी)। * DefaultContractResolver * CamelCase स्वीकार करेगा और TitleCase वापस करेगा, * CamelCasePropertyNamesContractResolver * स्वीकार करता है और CamelCase देता है। – JMK

+0

@ ओमु ने यह .NET कोर 1.x से 2.0 में बदल दिया है? – Hinrich

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