JSON सीरियलाइजेशन / ASP.Net कोर में डिसेरलाइज़ेशन


131

चूंकि कोई भी नहीं है JavaScriptSerializer, इसको संभालने के लिए किस मूल कार्यान्वयन का उपयोग किया जा सकता है?

मैंने ध्यान दिया JsonResultऔर मैं इसके साथ JSON को डेटा प्रारूपित कर सकता हूं, लेकिन मैं इसे कैसे निष्क्रिय कर सकता हूं?

या शायद मुझे कुछ निर्भरताएँ याद आ रही हैं project.json?

जवाबों:


235

आप उपयोग कर सकते हैं Newtonsoft.Json, यह एक निर्भरता है Microsoft.AspNet.Mvc.ModelBindingजिसकी निर्भरता है Microsoft.AspNet.Mvc। इसलिए, आपको अपने प्रोजेक्ट में निर्भरता जोड़ने की जरूरत नहीं है।

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

ध्यान दें, WebAPI नियंत्रक का उपयोग करके आपको JSON से निपटने की आवश्यकता नहीं है।

अद्यतन ASP.Net कोर 3.0

J.NET.NET को ASP.NET Core 3.0 शेयर्ड फ्रेमवर्क से हटा दिया गया है।

आप उच्च प्रदर्शन के शीर्ष पर नई JSON धारावाहिक परतों का उपयोग कर सकते हैं Utf8JsonReaderऔर Utf8JsonWriter। यह JSON से ऑब्जेक्ट्स को डिसेर्बलाइज़ करता है और JSON को ऑब्जेक्ट्स को सीरियल करता है। मेमोरी आवंटन को न्यूनतम रखा जाता है और इसमें JSON को स्ट्रीम के साथ अतुल्यकालिक रूप से पढ़ने और लिखने के लिए समर्थन शामिल है।

आरंभ करने के लिए, नाम स्थान JsonSerializerमें कक्षा का उपयोग करें System.Text.Json.Serialization। जानकारी और नमूने के लिए प्रलेखन देखें ।

ASP.NET Core 3.0 परियोजना में Json.NET का उपयोग करने के लिए:

  • Microsoft.AspNetCore.Mvc.NewtonsoftJson के लिए एक पैकेज संदर्भ जोड़ें
  • AddNewtonsoftJson () को कॉल करने के लिए कॉन्फ़िगर कॉन्फ़िगर करें अपडेट करें।
    services.AddMvc()
        .AddNewtonsoftJson();

अधिक जानकारी के लिए ASP.NET Core 2.2 से 3.0 पूर्वावलोकन 2 से माइग्रेट में Json.NET समर्थन पढ़ें ।


अब AspNetCore.Mcv का Newtonsoft.JSON पर कोई निर्भरता नहीं है। Microsoft.AspNet.Mvc.Formatters.Json असेंबली का उपयोग क्रमांकन के लिए किया जाता है।
रोमन पोक्रोव्सीज

9
@RomanPokrovskij, गलत,: Microsoft.AspNetCore.Mvc.Formatters.Jsonएक निर्भरता है Microsoft.AspNetCore.JsonPatchजिसके पास Newtonsoft.Json9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Json , nuget.org/packages/Microsoft.AspNetCore.JsonPatch
agua mars

आप JsonConvert.DeserializeObject <YourClass> (json) का उपयोग किसी विशिष्ट वर्ग के लिए deserialize करने के लिए भी कर सकते हैं।
नूनो रिबेरो

14

.net कोर

using System.Text.Json;

सीरियल करने के लिए

var jsonStr = JsonSerializer.Serialize(MyObject)

deserialize

var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);

गुण और नल को बाहर करने के बारे में अधिक जानकारी के लिए यह Microsoft पक्ष देखें


क्या आप जानते हैं कि गतिशील प्रकार से json को कैसे निष्क्रिय किया जाए?
zolty13
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.