दिलचस्प पोस्ट
एक समय श्रृंखला में हाल के परिवर्तनों को प्रदर्शित करने के लिए JFreeChart का उपयोग करना Scoping नियमों का संक्षिप्त विवरण? इकाई फ़्रेमवर्क और बिजनेस ऑब्जेक्ट्स मैं मोचा और चाय के साथ कैसे सही तरीके से परीक्षण करता हूं? मुझे एक क्लास में "यह" कब उपयोग करना चाहिए? मैं जेएएसएबी ऑब्जेक्ट की जेएसएएन की सूची का क्रमिकरण कैसे बदल सकता हूं? हनंत के स्टैक ऑलोकेटर के बारे में सवाल कैसे सी # में एक धागा समाप्त करने के लिए? स्ट्रिंग से मठ संचालन क्लिक पर href छवि लिंक डाउनलोड करें पायथन में पियरसन सहसंबंध और महत्व की गणना करना MATLAB में भाग-लंबाई डीकोडिंग फ़ॉर्मेट किए गए बिगडीकेल मान मुद्रित कैसे करें? जावा में एक अद्वितीय कंप्यूटर पहचानकर्ता कैसे प्राप्त करें (जैसे डिस्क आईडी या मदरबोर्ड आईडी) मैं जावा में सामान्य सूची कैसे क्लोन करता हूं?

Json.net के साथ serializing करते समय मैं संपत्ति के नाम कैसे बदल सकता हूँ?

मेरे पास सी # डेटासेट ऑब्जेक्ट में कुछ डेटा है मैं इसे इस तरह से एक Json.net कनवर्टर का उपयोग कर अभी सीरियल कर सकते हैं

DataSet data = new DataSet(); // do some work here to populate 'data' string output = JsonConvert.SerializeObject(data); 

हालांकि, यह .json फ़ाइल को प्रिंट करते समय data से प्रॉपर्टी नामों का उपयोग करता है। मैं संपत्ति के नामों को कुछ अलग करने के लिए बदलना चाहूंगा (कहते हैं, 'फू' को 'बार' में बदलें)

Json.net प्रलेखन में , ' सीरियललाइज़िंग और डीएसईरायलाइजिंग जेसन ' → 'सीरियलाइज़ेशन एट्रिब्यूट्स' के तहत यह कहते हैं, "जेसनप्रॉपर्टी ऍट्रिब्यूट … नाम को कस्टमाइज़ किया जा सकता है"। लेकिन कोई उदाहरण नहीं है क्या किसी को संपत्ति के नाम को कुछ और बदलने के लिए एक जेसनप्रॉपर्टी अटेटिवाइज का इस्तेमाल करना है?

( प्रलेखन के लिए सीधा लिंक )

Json.net का प्रलेखन विरल लग रहा है। अगर आपके पास एक महान उदाहरण है तो मैं उसे आधिकारिक दस्तावेजों में शामिल करने की कोशिश करूंगा। धन्यवाद!

Solutions Collecting From Web of "Json.net के साथ serializing करते समय मैं संपत्ति के नाम कैसे बदल सकता हूँ?"

आप अपनी संपत्ति को [JsonProperty] विशेषता के नाम पर नियंत्रित करने की इच्छा कर सकते हैं, जो आपको एक अलग नाम निर्दिष्ट करने की अनुमति देता है:

 [JsonProperty(PropertyName = "FooBar")] public string Foo { get; set; } 

प्रलेखन: धारावाहिक गुण

यदि आपके गुणों को बदलने के लिए कक्षाओं तक पहुंच नहीं है, या फिर हमेशा नाम बदलने वाले गुण का उपयोग नहीं करना चाहते हैं, फिर से नामकरण कस्टम रिज़ॉल्वर बनाने के द्वारा भी किया जा सकता है।

उदाहरण के लिए, यदि आपके पास MyCustomObject नामक MyCustomObject , जिसमें एक संपत्ति है जिसे LongPropertyName नाम कहा जाता है, तो आप इस तरह एक कस्टम रिज़ॉल्वर का उपयोग कर सकते हैं …

 public class CustomDataContractResolver : DefaultContractResolver { public static readonly CustomDataContractResolver Instance = new CustomDataContractResolver (); protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { var property = base.CreateProperty(member, memberSerialization); if (property.DeclaringType == typeof(MyCustomObject)) { if (property.PropertyName.Equals("LongPropertyName", StringComparison.OrdinalIgnoreCase)) { property.PropertyName = "Short"; } } return property; } } 

फिर सीरियललाइजेशन के लिए कॉल करें और रिज़ॉल्वर की आपूर्ति करें

  var result = JsonConvert.SerializeObject(myCustomObjectInstance, new JsonSerializerSettings { ContractResolver = CustomDataContractResolver.Instance }); 

और इसका परिणाम {"LongPropertyName" के बजाय {"लघु": "प्रोप वैल्यू"} को छोटा किया जाएगा : "प्रॉप मान"}

यहां कस्टम रिजॉल्वर के बारे में और जानकारी