कहते हैं कि मैं एक डोमेन वर्ग करते हैं:स्प्रिंग @RequestBody विभिन्न प्रकार (लेकिन एक ही इंटरफ़ेस) की सूची से युक्त
public class Zoo{
private List<Animal> animals;
....
जहां एक पशु विभिन्न कार्यान्वयन (बिल्ली, कुत्ते) के साथ एक अंतरफलक है। मान लीजिए कि मैं एक चिड़ियाघर वस्तु को बचाने के लिए सक्षम होने के लिए चाहते हैं:
@RequestMapping(value = "/zoo", method = RequestMethod.POST)
public @ResponseBody void save(@RequestBody Zoo zoo) {
....
और मैं एक json भेजना चाहते हैं - जैसे कुछ:
{
animals:[
{type:'Cat', whiskers-length:'3'},
{type:'Dog', name:'Fancy'}
]
}
मैं कैसे बता सकता वसंत MVC बिल्ली के लिए पशु मैप करने के लिए टाइप करें == 'बिल्ली' टाइप करें और टाइप करें == 'कुत्ता' टाइप करते समय इसे कुत्ते वर्ग में मैप करें?
क्षमा करें पर पाया जा सकता। लेकिन फिर भी यह मेरी समस्या का समाधान नहीं करता है, जो जेसन ऑब्जेक्ट से मैपिंग है {प्रकार: 'बिल्ली', व्हिस्कर लम्बाई: '3'} बिल्ली वर्ग में। चिड़ियाघर कक्षा केवल यह जानती है कि जानवरों की सूची में जानवर होते हैं। लेकिन जेसन deserializer कैसे पता है कि विशिष्ट जेसन ऑब्जेक्ट के लिए उपयोग करने के लिए पशु इंटरफ़ेस (कुत्ता या बिल्ली) का कार्यान्वयन? –