2011-10-04 5 views
10

जर्सी jersey.java.net का उपयोग कर मैं JSON को XML के बजाय डिफ़ॉल्ट क्रमबद्धरण के रूप में कैसे सेट करूं जब कोई स्वीकृति हेडर नहीं है या .xml प्रत्यय यूआरआई में है?जर्सी में xml के बजाय जेसन में डिफॉल्ट पर कैसे सेट करें?

@Produces({ "application/json" }) 

कैसे आ नहीं वहाँ स्वीकार करता है हैडर:

उत्तर

13

आप प्रत्येक मीडिया प्रकार को @Produces एनोटेशन में गुणवत्ता सूचकांक असाइन कर सकते हैं। I.e.you अगर दोनों XML और JSON अनुमति दी जाती है जर्सी बनाने के लिए निम्नलिखित JSON पसंद कर सकते हैं:

@Produces({"application/json;qs=1", "application/xml;qs=.5"}) 
+0

तो दो मीडिया प्रकारों को बनाने में सक्षम वेब विधि के साथ, अनुरोधकर्ता यह निर्दिष्ट करता है कि वह कौन सा चाहता है? क्या यह एक प्रश्न param के माध्यम से किया जाता है? कैसे? स्वीकृति अनुरोध शीर्षलेख का उपयोग कर –

+1

। (http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3) –

+0

स्पॉट ऑन। धन्यवाद! – FredArters

1

तुम इतनी तरह वापसी प्रारूप निर्दिष्ट करने के लिए @Produces एनोटेशन सेट करने में सक्षम होना चाहिए?

+0

जब एक्सएमएल से अनुरोध किया जाता है तो इसका परिणाम 406 त्रुटि होगी। ओपी एक्सएमएल और जेएसओएन वापस करने में सक्षम होना चाहता है, लेकिन अगर अनुरोध नहीं किया गया तो JSON के लिए डिफ़ॉल्ट। – idontevenseethecode

+0

आपका मतलब @ कॉन्स्यूम्स ({"एप्लिकेशन/जेसन"}) –

-2

आप @Produces एनोटेशन में वरीयता के अपने आदेश में मीडिया प्रकार को निर्दिष्ट करके पीढ़ी की प्राथमिकता का उल्लेख कर सकते हैं। कोई स्वीकार करता है, तो हैडर अनुरोध जर्सी JSON प्रतिक्रिया उत्पन्न करने के लिए लागू हो जाएगी में निर्दिष्ट किया जाता

@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 

के बाद से "application/json" उपरोक्त कोड में, सबसे पहले आता है।

qs (जैसा कि मार्टिन द्वारा सुझाया गया है) का उपयोग प्राथमिकता को अधिक स्पष्ट बनाता है, लेकिन यह समझने के लिए थोड़ा और जटिल है।

+0

यह वर्तमान संस्करण में काम नहीं करता है। मैं जर्सी के पुराने संस्करणों के लिए बात नहीं कर सकता। 'स्वीकार' हेडर के बिना, भले ही जेएसओएन उत्पाद सूची में पहला है, फिर भी एक्सएमएल लौटाता है। क्या ऐसा कुछ और हो सकता है जो जर्सी के संस्करण के अलावा इसे प्रभावित करता हो? – FredArters

+0

यह सिर्फ गलत जानकारी है। उत्पादन एनोटेशन में मीडिया प्रकारों का क्रम डिफ़ॉल्ट प्रतिक्रिया पर बिल्कुल प्रभाव नहीं डालता है। – Michael

+0

खैर, ओरेकल का कहना है कि ऑर्डर प्रासंगिक है: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp2c/index.html लेकिन मुझे लगता है कि यह वास्तव में कार्यान्वयन-निर्भर है – Gui13

संबंधित मुद्दे