मैं कुछ सी # ASP.Net MVC है, जो कुछ DTOs क्रमानुसार करने Json.Net का इस्तेमाल कर रही है का उपयोग कर कोड है। आदेश पेलोड कम करने के लिए, मैं [JsonProperty (PropertyName = "SHORTNAME")] का इस्तेमाल किया है क्रमबद्धता के दौरान कम संपत्ति नामों का उपयोग करने जोड़कर देखते हैं।जेसनप्रॉपर्टी (PropertyName = "someName") को अनदेखा करते समय जेसन को क्रमबद्ध करते समय?
क्लाइंट एक और .NET ऐप या सेवा है, जब यह वास्तविक काम करता है, क्योंकि deserialization ऑब्जेक्ट पदानुक्रम को एक साथ वापस रखता है, और अधिक अनुकूल नामों का उपयोग करके, वास्तविक हस्तांतरण पेलोड को कम रखते हुए।
समस्या खेलने में आता है जब ग्राहक एक ब्राउज़र के माध्यम जावास्क्रिप्ट/ajax है। यह अनुरोध करता है, और जेसन मिल जाता है ... लेकिन वह जेसन कम कम दोस्ताना नामों का उपयोग कर रहा है।
मैं कैसे json.net क्रमबद्धता इंजन [JsonProperty (PropertyName = "SHORTNAME")] प्रोग्राम के रूप में विशेषता की अनदेखी कर सकते हैं? आदर्श रूप में, मेरी एमवीसी सेवा वहां चलने जा रही है और सामान्य रूप से संक्षिप्त संपत्ति नामों का उपयोग करके क्रमबद्ध करने जा रही है। जब मेरा कोड किसी विशेष पैरामीटर का पता लगाता है, तो मैं लंबे नामों का उपयोग करके डेटा को क्रमबद्ध करना चाहता हूं और [जेसनप्रोपर्टी()] विशेषता को अनदेखा करता हूं।
कोई सुझाव?
धन्यवाद,
केविन
सिर्फ 'JsonProperty' हटाने और अनुसार एक गुमनाम ऑब्जेक्ट प्रदान आपके द्वारा पारित पैरामीटर के लिए। जैसे 'नई {username = uname} कुछ' –
मुझे लगता है कि सबसे अच्छा तरीका एक कस्टम serializer (खरोंच से नहीं json.NET साथ,) बनाने और एनोटेशन बाहर निकालना होगा। छोटे नाम बनाम लंबे नामों को धारावाहिक की सेटिंग का नाम दें और केवल यह बताएं कि आप क्रमबद्धता के समय क्या चाहते हैं। json.NET को रन टाइम पर एनोटेशन का उपयोग/अनदेखा करने के लिए कोई समर्थन नहीं है। यदि वे संकलन समय पर हैं, तो उनका उपयोग किया जाएगा (कुछ प्रमुख हैकिंग को रोकना)। – evanmcdonnal
मैं वहां टिप्पणियों की सराहना करता हूं। @evanmcdonnal: अगर हम एक कस्टम धारावाहिक के साथ गए, तो क्या हमें इसे डीटीओ-विशिष्ट स्तर (प्रत्येक डीटीओ से जुड़ा हुआ) पर करने की ज़रूरत होगी? हमारे पास कई विकास टीमों के माध्यम से कई समाधानों में फैले कई डीटीओ हैं। आदर्श रूप से हम बोर्ड के पार सभी डीटीओ के माध्यम से इसे छूने और बनाए रखने के बिना धारावाहिक प्रक्रिया में संलग्न करने के लिए अपेक्षाकृत सुरुचिपूर्ण तरीका पा सकते हैं। – Kevin