/ / जेटीसन और जेएक्सबी जेएसओएन प्रतिक्रिया में स्वचालित रूप से डेटा प्रकार बदलता है - जावा, जेसन, जैक्सबी, रेस्टसी, जेटिसन

जेटिसन और जेएक्सबी जेएसओएन प्रतिक्रिया में स्वचालित रूप से डेटा प्रकार बदलता है - जावा, जेसन, जैक्सबी, रेस्टसी, जेटिसन

मैं JACB annontations के साथ Resteasy 2.0.1.GA और Resteasy-jettison-provider-1.2.GA का उपयोग कर रहा हूं और जब भी मेरे पास स्ट्रिंग प्रॉपर्टी होती है जिसमें सभी संख्याएं होती हैं (यानी। String groupName="1111";), जेएसओएन प्रतिक्रिया डबल कोट्स को हटाकर इसे एक संख्या के रूप में प्रदर्शित करेगी। अगर मैं इसे बदलता हूं String groupName="oneoneoneoneone"; JSON प्रतिक्रिया इसे एक स्टिंग के रूप में मानती है औरप्रतिक्रिया में डबल उद्धरण रखें। क्या जेटीसन प्रदाता अपने डेटा के आधार पर प्रतिक्रिया के आंकड़ों को सख्ती से समझने के लिए है और इसका मूल्य नहीं है?

उत्तर:

उत्तर № 1 के लिए 4

यह जेटीसन की एक अंतर्निहित "विशेषता" प्रतीत होता है; यह वास्तविक डेटा का आत्मनिरीक्षण करने का प्रयास करता है और पता लगाता है कि "सबसे अच्छा प्रकार क्या है। मैं इसे पहले भर चुका हूं, और यह क्रोधित है।

मैं पूरी तरह से जेटीसन को पूरी तरह से हटाने और उपयोग करने की सलाह देता हूं RestEasy जैक्सन समर्थन बजाय। जैक्सन एक बेहतर गुणवत्ता पुस्तकालय है, और इन "सहायक" सुविधाओं से पीड़ित नहीं है। यह भी जेएक्सबी एनोटेशन का समर्थन करता है बस जेटिसन की तरह।


जवाब के लिए 0 № 2

सूचीकर्ता है जो सर्वर प्रारंभ होने पर नीचे सिस्टम प्रॉपर्टी सेट करता है।

System.setProperty("jettison.mapped.typeconverter.class"
,"org.codehaus.jettison.mapped.SimpleConverter");

एक बार संपत्ति पर सेट हो जाने के बाद simpleConverter फिर jettison मूल्यों को हमेशा स्ट्रिंग के रूप में आउटपुट करता है चाहे डेटा प्रकार स्ट्रिंग या int कोई फर्क नहीं पड़ता।