मैं जेएसओएन स्ट्रिंग को जावा ऑब्जेक्ट में कनवर्ट करना चाहता हूं, लेकिन इस ऑब्जेक्ट की कक्षा में अमूर्त फ़ील्ड हैं, जो जैक्सन तत्काल नहीं कर सकता है, और इसका उत्पादन नहीं करता है वस्तु। क्या सबसे आसान तरीका है एक अमूर्त वर्ग के कुछ डिफ़ॉल्ट कार्यान्वयन के बारे में यह बताने के लिए, की तरहजैक्सन जेएसओएन लाइब्रेरी: एक वर्ग को तत्काल कैसे करें जिसमें अमूर्त फ़ील्ड हैं
setDefault(AbstractAnimal.class, Cat.class);
या कार्यान्वयन JSON के आधार पर वर्ग के बारे में फैसला करने के लिए विशेषता नाम, उदाहरण के लिए है। JSON ऑब्जेक्ट के लिए:
{
...
cat: {...}
...
}
मैं सिर्फ wite होगा:
setImpl("cat", Cat.class);
मैं जानता हूँ कि JSON अंदर कक्षा की जानकारी एम्बेड करने के लिए जैक्सन में यह संभव है, लेकिन मैं JSON प्रारूप को मुश्किल नहीं करना चाहती मैं उपयोग। मैं तय करने के लिए क्या वर्ग बस डिफ़ॉल्ट कार्यान्वयन वर्ग की स्थापना द्वारा उपयोग करने के लिए, या विशेषता नाम ('बिल्ली') द्वारा चाहते हैं - Xstream पुस्तकालय है, जहां आप लिखते हैं की तरह:
xStream.alias("cat", Cat.class);
वहाँ ऐसा करने के लिए एक रास्ता है, विशेष रूप से एक पंक्ति में, या इसके लिए कुछ और कोड की आवश्यकता है?
जावा में 'सार क्षेत्र' जैसी कोई चीज़ नहीं है। – EJP
मेरा मतलब था: 'कक्षा सी {पशु पशु; } ' और मैं सी को तत्काल बनाना चाहता हूं, जहां अनियाल अमूर्त है, और मैं इस क्षेत्र में एक बिल्ली रखना चाहता हूं, जो पशु – Marcin
बढ़ाता है इसलिए कोई समस्या नहीं है। अमूर्त प्रकारों के चर के खिलाफ कोई नियम नहीं है। – EJP