एक वस्तु आवरण प्राप्त इस जेएसओएन को एक रैपर वर्ग में मैप करें।वसंत MVC @RequestBody मैं JSON बनाने के रूप में इस के साथ गैर आदिम विशेषताओं
private class Subscription{
private User manager;
private User userToSubscribe;
private String openid;
public User getManager() {
return manager;
}
public void setManager(User manager) {
this.manager = manager;
}
public User getUserToSubscribe() {
return userToSubscribe;
}
public void setUserToSubscribe(User userToSubscribe) {
this.userToSubscribe = userToSubscribe;
}
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
}
pom.xml में जैक्सन निर्भरता (मैं वसंत 3.1.0.RELEASE उपयोग कर रहा हूँ):
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.10</version>
</dependency>
बाकी-servlet.xml में मानचित्रण
यह आवरण है<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
</bean>
और नियंत्रक विधि के शीर्षक:
public @ResponseBody SimpleMessage subscribeUser(@RequestBody Subscription subscription)
POST के परिणामस्वरूप मुझे 400 गलत अनुरोध त्रुटि प्राप्त होती है। क्या ऐसा करना संभव है या मुझे @RequestBody
स्ट्रिंग या @RequestBody Map<String,Object>
के साथ ऐसा करने की आवश्यकता है और JSON को डीकोड करें?
धन्यवाद!
ऐसा करने से आपको कुछ भी नहीं रोकना चाहिए। त्रुटि 400 अनुरोध या मैपिंग के साथ कुछ गलत बताती है। क्या 'उपयोगकर्ता' वर्ग में डिफ़ॉल्ट नो-एर्ग कन्स्ट्रक्टर है। –
रैपर जावा में एक पूर्ण भिन्न अवधारणा है, आपके पास कुछ ऑब्जेक्ट्स हैं जिन्हें आप बाहरी वर्ग में एकत्र करना चाहते हैं। –
आप जिस वसंत का उपयोग कर रहे हैं उसका संस्करण क्या है? –