এএসপি.নেট এমভিসি কোর 3.0 এপিআই এনামগুলিকে স্ট্রিংয়ে সিরিয়াল করুন


13

এএসপি.নেট এমভিসি কোর ৩.০ এর পরিবর্তে এনাম ক্ষেত্রগুলিকে স্ট্রিংয়ে সিরিয়ালাইজ করবেন কীভাবে? আমি এটি পুরানো উপায়ে করতে পারছি না।

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

আমি একটি ত্রুটি পাচ্ছি:

'নিউটনসফট.জসন.কনভার্টারস.স্ট্রিংএইনম কনভার্টার' থেকে 'সিস্টেম.টেক্সট.জসন.সরিয়ালাইজেশন.জসন কনভার্টারে রূপান্তর করতে পারবেন না'


এএসপি.নেট কোর 3.0 এ জেএসওএন.এনইটি অন্তর্ভুক্ত করে না যার অর্থ এই কোডটি চেষ্টা করার আগে আপনাকে স্পষ্টভাবে প্যাকেজটি যুক্ত করতে হয়েছিল
Panagiotis Kanavos

উত্তর:


28

নতুন সিস্টেম.টেক্সট.জসন সিরিয়ালাইজেশন

এএসপি.নেট এমভিসি কোর 3.0 বিল্ট ইন জেএসএন সিরিয়ালাইজেশন ব্যবহার করে। ব্যবহারের System.Text.Json.Serialization.JsonStringEnumConverter( "JSON" উপসর্গ সহ):

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

আরও তথ্য এখানে । ডকুমেন্টেশন এখানে পাওয়া যাবে

আপনি যদি Newtonsoft.Json পছন্দ করেন

আপনি "ট্র্যাডিশনাল" নিউটোনসফটও ব্যবহার করতে পারেন। জেসন সিরিয়ালাইজেশন:

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

6
আপনার যদি একটি ওয়েব এপিআই থাকে তবে তার পরিবর্তে আপনিও .AddMvc()ব্যবহার করতে পারেন services.AddControllers().AddJsonOptions(...)
টোবিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.