मेरे पास एक ऑब्जेक्ट है जिसमें कई गुण हैं जो तारों की सूची List<String>
या तारों का एक शब्दकोश Dictionary<string,string>
है। मैं जेसननेट का उपयोग कर जेसन को ऑब्जेक्ट को क्रमबद्ध करना चाहता हूं और मैं कम से कम पाठ उत्पन्न करना चाहता हूं।खाली संग्रहों के जेसननेट को छोड़ने के लिए कैसे करें
मैं डिफॉल्ट वैल्यू हैंडलिंग और नलवैल्यू हैंडलिंग का उपयोग कर रहा हूं ताकि डिफ़ॉल्ट मान स्ट्रिंग्स और पूर्णांक पर सेट कर सकें। लेकिन अगर मैं रिक्त List<String>
या Dictionary<string,string>
पर प्रारंभ किया गया है, तो मैं धारावाहिक आउटपुट में संपत्ति को अनदेखा करने के लिए DefaultValueHandling को परिभाषित कैसे कर सकता हूं?
कुछ नमूना उत्पादन होता है:
{
"Value1": "my value",
"Value2": 3,
"List1": [],
"List2": []
}
मैं एक परिणाम है कि ऊपर के उदाहरण में दो सूचियों पर ध्यान नहीं देता, क्योंकि वे एक खाली सूची के डिफ़ॉल्ट मान पर सेट कर रहे हैं करना चाहते हैं।
किसी भी मदद
मुझे नहीं लगता कि यह संभव है। मुझे यकीन है कि 'शून्य' मानों को अनदेखा करना बहुत कठिन नहीं होगा, लेकिन आपको अन्यत्र परिवर्तन करने की आवश्यकता होगी ताकि वे संदर्भ रिक्त सूची को इंगित करने के बजाय शून्य हों। – evanmcdonnal
मुझे यकीन है कि यह एक कस्टम कनवर्टर (अमूर्त वर्ग जेसन कनवर्टर को कार्यान्वित करके) के साथ किया जा सकता है, लेकिन अब मैं कोड प्रदान करने के लिए बहुत आलसी हूं। – I4V
मुझे यह आलेख मिला जिसमें IContractResolver का संदर्भ शामिल है। http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size.aspx यह लागू करने का एक तरीका खोजने के लिए एक अच्छा सीसा प्रतीत होता है इस। – agarcian