0
我想從Android傳遞一個JSONArray到我的Spring java服務器。從Android到傑克遜的自定義對象的Spring JSON映射
我已經試過兩種方法。一種是將JSONArray作爲字符串傳遞並使用@PathVariable註釋捕獲。
這樣我就可以得到[{「id」:6,「numDishes」:1,「observations」:「false」},{「id」:2,「numDishes」:3,假「}],我想我可以使它這樣工作。
我用於此的代碼是:
在機器人
HttpGet request = new HttpGet(serverURL + action);//action already has two params
HttpResponse response = httpclient.execute(target, request);
在服務器到達/ orderService/addOrder/1/[{ 「ID」:6, 「numDishes」:1,」觀察 「:」 假 「},{」 ID 「:2,」 numDishes 「:3,」 意見 「:」 假「}]
@RequestMapping(method=RequestMethod.GET, value="/addOrder/{tableNumber}/{jsonParam}")
public void addOrder(@PathVariable Integer tableNumber, @PathVariable String jsonParam) {
log.info("String encoded: " + jsonParam);
}
無論如何,我寧願直接做。喜歡的東西
的Android
HttpPost request = new HttpPost(serverURL + action + URLEncoder.encode(paramsString, "UTF-8"));
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
HttpResponse response = httpclient.execute(target, request);
服務器
public class OrderPojo extends ArrayList<DishPojo>{}
@RequestMapping(method=RequestMethod.POST, value="/addOrderPost/{tableNumber}/{jsonParam}")
public void addOrderPost(@PathVariable Integer tableNumber, @RequestBody OrderPojo jsonParam) {
log.info("addOrderPost OrderPojo: " + jsonParam);
}
而且,因爲我認爲這可能是問題的一部分,我有這個我春天的servlet的內部:
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
</bean>
<mvc:annotation-driven/>
我在正確的道路上嗎?我怎樣才能直接解析我的對象到我的服務器內的自定義對象?
爲了記錄:我沒有收到任何錯誤,或者消息 – inor 2013-05-09 18:46:50