के साथ स्ट्रिंग के जेएसओएन प्रस्तुति को लौटाना मैं जर्सी के साथ एक आरईएसटी-वेबसाइट सेवा स्थापित करने जा रहा हूं। फिलहाल मैं स्ट्रिंग या JSON में अन्य मान प्रकारों के सही प्रतिनिधित्व के बारे में थोड़ा उलझन में हूं।जर्सी
@GET
@Path("user")
@Produces(MediaType.APPLICATION_JSON)
public User user() {
return new User("reini", "admin");
}
एक ब्राउज़र में इस विधि कॉलिंग ऐसे ही एक "अच्छा" JSON स्ट्रिंग प्रदर्शित करेगा:
{"name":"reini","role":"admin"}
मेरी दूसरी विधि इस प्रकार है: यहाँ दो स्निपेट होते हैं
@GET
@Path("hello/{name}")
@Produces(MediaType.APPLICATION_JSON)
public String hello(@PathParam("name") String name) {
return "Hello " + name + ", it is " + new Date();
}
ब्राउजर में उस विधि को कॉल करने से किसी भी JSON-Stuff (घुंघराले ब्रेसेस इत्यादि) के बिना एक शुद्ध स्ट्रिंग प्रदर्शित होगी:
Hello firefox, it is Tue Sep 18 13:52:57 CEST 2012
मैं इस सेवा को डोजो टूलकिट के साथ उपभोग करना चाहता हूं। समस्या यह है कि जैसे ही मैंने सेट किया है, मुझे दूसरी विधि के लिए एक मिलता है [हैंडलएएस: "जेसन"] - ध्वज। यह मुझे एक त्रुटि फेंकता है "सिंटेक्स त्रुटि: अप्रत्याशित टोकन एच" जहां "एच" लौटाई गई स्ट्रिंग का पहला अक्षर है।
तो: स्ट्रिंग्स और अन्य मूल्य प्रकारों का सही जेसन प्रतिनिधित्व क्या है और इन्हें बनाने के लिए मेरी विधि के लिए मुझे कौन सी टिप्पणियां सेट करनी हैं?
यह हर ऑपरेशन के लिए एक डीटीओ बनाने के लिए या प्रत्येक प्रकार मैं उपयोग करना चाहते हैं के लिए एक डीटीओ बनाने के लिए बेहतर है:
बस एक सादा पाठ (MediaType.TEXT_PLAIN) के रूप में इसे वापस? – Reini
प्रत्येक प्रकार के लिए डीटीओ – SiMet
"JSON प्रारंभ होता है {" - गलत। Http://json.org के मुताबिक भी एक उद्धृत स्ट्रिंग अक्षर वैध JSON है, और जर्सी को एक स्ट्रिंग को JSON स्ट्रिंग के रूप में सही ढंग से क्रमबद्ध करने का समर्थन करना चाहिए। – ddumont