ASP.NET MVC कोर 3.0 एपीआई स्ट्रिंग के लिए सीरम को सक्रिय करें


13

ASP.NET MVC Core 3.0 में Int के बजाय Enum फ़ील्ड्स को स्ट्रिंग में क्रमबद्ध कैसे करें? मैं इसे पुराने तरीके से नहीं कर पा रहा हूं।

services.AddMvc().AddJsonOptions(opts =>
{
    opts.JsonSerializerOptions.Converters.Add(new StringEnumConverter());
})

मुझे एक त्रुटि मिल रही है:

'Newtonsoft.Json.Converters.StringEnumConverter' से 'System.Text.Json.Serialization.JsonConverter' में परिवर्तित नहीं हो सकता


ASP.NET Core 3.0 में JSON.NET शामिल नहीं है जिसका अर्थ है कि आपको इस कोड को आज़माने से पहले पैकेज को जोड़ना होगा
Panagiotis Kanavos

जवाबों:


28

New System.Text.Json क्रमांकन

ASP.NET MVC कोर 3.0 अंतर्निहित JSON क्रमांकन का उपयोग करता है। उपयोग System.Text.Json.Serialization.JsonStringEnumConverter("Json" उपसर्ग के साथ):

services
    .AddMvc()
    // Or .AddControllers(...)
    .AddJsonOptions(opts =>
    {
        opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
    })

अधिक जानकारी यहाँ । प्रलेखन यहाँ पाया जा सकता है

यदि आप न्यूटनसॉफ्ट पसंद करते हैं। Json

आप "पारंपरिक" न्यूटनसॉफ्ट का भी उपयोग कर सकते हैं। आगजनी क्रमांकन:

services
    .AddControllers()
    .AddNewtonsoftJson(opts => opts.Converters.Add(new StringEnumConverter()));

6
अगर आपके पास एक वेब एपीआई है तो उसकी जगह .AddMvc()आप भी इस्तेमाल कर सकते हैं services.AddControllers().AddJsonOptions(...)
टोबियास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.