मैं केवल एक गैर जैक्सन समाधान के बारे में सोच सकता है, एक आधार वर्ग कि मानचित्रण के लिए संदर्भ नहीं है और फिर वास्तविक वर्ग के लिए डाली उपयोग करने के लिए:
// expect a B on an incoming request
class B {
// ...
}
// after the data is read, cast to A which will have empty references
class A extends B {
public Map<String,List<String>> references;
}
क्यों यदि आप उन्हें नहीं चाहते हैं तो आप संदर्भ भी भेजते हैं?
या आपके हाथों से आने वाला डेटा है और आप बस मैपिंग अपवाद से बचना चाहते हैं जो आपको बता रहा है कि जैक्सन आने वाले संदर्भों के लिए सेट करने के लिए कोई संपत्ति नहीं ढूंढ सकता है?
public abstract class JsonObject {
@JsonAnySetter
public void handleUnknown(String key, Object value) {
// for us we log an error if we can't map but you can skip that
Log log = LogFactory.getLog(String.class);
log.error("Error mapping object of type: " + this.getClass().getName());
log.error("Could not map key: \"" + key + "\" and value: \"" + "\"" + value.toString() + "\"");
}
फिर POJO में आप @JsonIgnoreProperties
इतना जोड़ने कि आने वाले गुण handleUnknown()
@JsonIgnoreProperties
class A extends JsonObject {
// no references if you don't need them
}
के पास भेज हो जाएगी: कि के लिए हम एक आधार वर्ग है जो हमारे Json मॉडल वर्गों के सभी के वारिस का उपयोग संपादित करें
This SO Thread मिक्सिन का उपयोग करने का वर्णन करता है। यह समाधान हो सकता है, अगर आप अपनी संरचना को ठीक तरह से रखना चाहते हैं, लेकिन मैंने कोशिश नहीं की है।
यह सही है। आने वाला डेटा वास्तव में हमारे हाथों में नहीं है। लेकिन ग्राहक हमेशा सही प्रारूप में संदर्भ गुण भेजते हैं ताकि संभाल अज्ञात कभी नहीं कहा जाएगा। – guerilla
आह, मेरा बुरा, जानकारी का एक छोटा सा टुकड़ा भूल गया। यदि आप आने वाले डेटा को अनदेखा करना चाहते हैं तो आपको POJO पर '@ JsonIgnoreProperties 'की आवश्यकता है। मैं अपनी पोस्ट अपडेट करूंगा। (पीएस: हम इसका इस्तेमाल फेसबुक के आरईएसटी संसाधन का उपभोग करने के लिए करते हैं और फेसबुक से भेजे गए सभी गुण जो हमारे पीओजेओ में शामिल नहीं हैं, सिर्फ लॉग इन होंगे और फिर हम तय करेंगे कि हम उन्हें जोड़ना चाहते हैं या नहीं) – Pete
लेकिन मेरे POJO में संदर्भ हैं इसलिए हमेशा सेटर – guerilla