में शून्य फ़ील्ड शामिल नहीं कर सकते हैं मैं एमवीसी 4 वेबएपीआई (आरटीएम - बस वीएस2012 आरटीएम स्थापित किया गया था लेकिन आरसी में कल यह समस्या थी) के साथ जेएसओएन के रूप में वस्तुओं को क्रमबद्ध करने की कोशिश कर रहा हूं और मैं चाहूंगा जेएसओएन आउटपुट में सभी नल प्रस्तुत किए जाएंगे। इस तरह:एमवीसी 4 वेबएपीआई में जेएसओएन
[{"Id": 1, "PropertyThatMightBeNull": null},{"Id":2, "PropertyThatMightBeNull": null}]
लेकिन क्या मैं हो रही
[{"Id":1},{"Id":2}]
मैं इस प्रश्न मिल गया है/है एक WebApi doesnt serialize null fields लेकिन इस सवाल का जवाब या तो मेरे लिए काम नहीं करता है या मैं समझ जहां नाकाम रहने रहा हूँ जवाब देने के लिए।
यहाँ मैं क्या कोशिश की है:
Global.asax.cs के Application_Start में, मैं कहा:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter; json.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Include; json.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include;
यह नहीं करता है (लग) की गलती और वास्तव में निष्पादित करने के लिए लगता है मैंने कोशिश की अगली चीज़ को देखने के आधार पर।
एक नियंत्रक विधि (ApiController का एक उपवर्ग में) में, कहा:
base.Configuration.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Include; base.Configuration.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include;
मैं कहता हूँ # 1 निष्पादित क्योंकि # 2 में दोनों मूल्यों को पहले से ही स्थापित किए गए पहले उन पंक्तियों के रूप में मैं के माध्यम से कदम रखा भाग गया।
एक हताशा चाल में मैं एक संपत्ति है कि बातिल और अनुपस्थित था को यह attrib जोड़ने की कोशिश की (क्योंकि मैं वास्तव में हर वस्तु के हर संपत्ति को सजाने के लिए नहीं करना चाहते हैं):
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include, NullValueHandling = NullValueHandling.Include)]
सभी तीन शून्य गुणों के साथ एक ही JSON उत्पन्न छोड़ दिया।
अतिरिक्त नोट्स:
- IIS में स्थानीय स्तर पर चल रहा है (भी में निर्मित करने की कोशिश की), विंडोज 7, VS2012 आरटीएम।
- नियंत्रक विधियों की वापसी सूची - आईनेमेरेबल भी कोशिश की गई
- ऑब्जेक्ट्स जिन्हें मैं क्रमबद्ध करने की कोशिश कर रहा हूं वो पॉको हैं।
बाहर कर देता है यह काम किया है - या होना चाहिए। मैं खुद को विनम्रता की पूरी खुराक देने के लिए जो कुछ भी खराब कर रहा था उसे पोस्ट करूंगा :) – AndrewFreese
इस उत्तर के लिए आपको धन्यवाद नहीं दे सकता। – Simian
पहला संस्करण भी काम करता है (सीरिएलाइज़र सेटिंग्स का एक नया उदाहरण बनाये बिना), जब तक आप डिफॉल्ट वैल्यू हैंडलिंग और नलवैल्यू दोनों को अपने संबंधित मूल्यों में शामिल करते हैं – Masterfu