將Java對(duì)象轉(zhuǎn)換為JSONObject并以GET方法傳輸。
看看Google的Gson。這是一個(gè)非常簡(jiǎn)潔的API,用于將對(duì)象轉(zhuǎn)換為JSON。通過(guò)將類中的@Expose批注添加到需要包括的屬性中,可以輕松地指定屬性。像這樣嘗試:
@RequestMapping(value = '/restaurant/listing', method = RequestMethod.GET)public @ResponseBody String listAllRestaurants(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.addobject('restaurant', new Restaurant()); List<Restaurant> restaurantList = this.restaurantService.listRestaurants(); Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); String jsonString = gson.toJson(restaurantList); return jsonString;}
不必使用@Expose注釋屬性,但是如果最終有任何循環(huán)引用,它將很有用。
祝好運(yùn)。
解決方法 我正在開(kāi)發(fā)一個(gè)Android應(yīng)用程序,為此我還正在開(kāi)發(fā)基于Spring-MVC的服務(wù)器。不幸的是,在此之前,我還沒(méi)有在JSONObjects上做太多工作。目前,我能夠從Android應(yīng)用程序?qū)ava對(duì)象發(fā)送到服務(wù)器,也可以接收J(rèn)ava對(duì)象。 我對(duì)使用Google提供的Volley框架感興趣,該框架將避免Asynctask的麻煩,并且效率更高,但它處理JSONObject。不幸的是,無(wú)論我在網(wǎng)上什么地方,都找到了創(chuàng)建JSOnObjects的代碼,將其保存在本地硬盤(pán)上的某個(gè)文件中,但是不,我想在ResponseBody中傳輸它們,任何人都可以幫助我為JSOBObject創(chuàng)建JAVA對(duì)象反之亦然。我具有所有POM依賴項(xiàng),并在servlet上下文中設(shè)置了messageConvertors。控制器代碼電流:
//Restaurant is just a plain Java class,I can give it as a JSONObject,but I dont know how to convert that JSONObject to java so I can save the restaurant in the server. @RequestMapping(value = '/restaurant/add',method = RequestMethod.POST) @ResponseBody public String addRestaurantWebView(@RequestBody Restaurant restaurant){ModelAndView modelAndView = new ModelAndView();modelAndView.addObject('restaurant',new Restaurant());modelAndView.addObject(restaurant);this.restaurantService.addRestaurant(restaurant);return 'true'; }//Similarly,here,I don’t know how to convert the Restaurant’s list to JSONObject when there is a get Request. @RequestMapping(value = '/restaurant/listing',method = RequestMethod.GET) public @ResponseBody List<Restaurant> listAllRestaurants(){ModelAndView modelAndView = new ModelAndView();modelAndView.addObject('restaurant',new Restaurant());List<Restaurant> restaurantList = this.restaurantService.listRestaurants();modelAndView.addObject('listRestaurant',restaurantList);return restaurantList; }
我希望我的問(wèn)題很清楚,如果有任何疑問(wèn),請(qǐng)告訴我。非常感謝。
相關(guān)文章:
1. javascript - vue的element-ui(餓了嗎UI) webpack打包時(shí)externals無(wú)法分離2. (python)關(guān)于如何做到按win+R再輸入文件文件名就可以運(yùn)行?3. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處4. python - 能通過(guò)CAN控制一部普通的家用轎車嗎?5. javascript - 請(qǐng)問(wèn) chrome 為什么會(huì)重復(fù)加載圖片資源?6. javascript - 請(qǐng)教如何獲取百度貼吧新增的兩個(gè)加密參數(shù)7. css3 - 微信前端頁(yè)面遇到的transition過(guò)渡動(dòng)畫(huà)的bug8. Python爬蟲(chóng)如何爬取span和span中間的內(nèi)容并分別存入字典里?9. html5 - 只用CSS如何實(shí)現(xiàn)input框的寬度隨框里輸入的內(nèi)容長(zhǎng)短自動(dòng)適應(yīng)?10. javascript - 關(guān)于css絕對(duì)定位在ios瀏覽器被橡皮筋遮擋的問(wèn)題
