Java Web項(xiàng)目中Spring框架處理JSON格式數(shù)據(jù)的方法
json是一種常見的傳遞格式,是一種鍵值對應(yīng)的格式。并且數(shù)據(jù)大小會比較小,方便傳遞。所以在開發(fā)中經(jīng)常會用到j(luò)son。
首先看一下json的格式:
{key1:value1,key2:value2}
每一個建對應(yīng)一個值,每個鍵值對之間用逗號連接。并且最后一個鍵值對之后沒有逗號,整體需要有大括號括起來。
一般正常的servlet返回json時,會像下面這樣:
response.setContentType("text/JSON;charset=utf-8"); response.getWriter().print(gson.toJson(page)); response.getWriter().flush(); response.getWriter().close(); return null;
這樣相對來說比較麻煩,也不好封裝。新版spring返回json時,可以通過@ResponseBody直接返回,這點(diǎn)做得很不錯,大概代碼如下:
@Controller @RequestMapping("/json") public class JsonController { @RequestMapping(value="{provinceId}",method = RequestMethod.GET) @ResponseBody public String pagination(@PathVariable String provinceId){ return getJsonData(provinceId); } }
訪問方式如下:http://localhost:8080/spring3/action/json/1,有一點(diǎn)需要注意下,那就是訪問spring mvc的controller時中間加了個/action,那是因?yàn)镈ispatcherServlet的映射路徑如果直接使用/*的話,會將相應(yīng)的jsp屏蔽掉,所以一定得加個前綴以區(qū)別jsp與controller.
上面的json中如果有中文的話,會出現(xiàn)亂碼,所以則修改spring-servlet.xml配置文件,修改下AnnotationMethodHandlerAdapter的messageConverters即可,因?yàn)槠淠J(rèn)采用的iso8895-1的編碼,代碼如下:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="com.mvc.commons.CommonsBindingInitializer" /> </property> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>
經(jīng)過這些步驟后,對json的處理就相當(dāng)方便了。
- springboot+webmagic實(shí)現(xiàn)java爬蟲jdbc及mysql的方法
- Java中Spring WebSocket詳解
- webuploader在springMVC+jquery+Java開發(fā)環(huán)境下的大文件分片上傳的實(shí)例代碼
- java web SpringMVC后端傳json數(shù)據(jù)到前端頁面實(shí)例代碼
- 詳解java WebSocket的實(shí)現(xiàn)以及Spring WebSocket
- java WebSocket的實(shí)現(xiàn)以及Spring WebSocket示例代碼
- JavaWeb Spring開發(fā)入門深入學(xué)習(xí)
- Java web spring異步方法實(shí)現(xiàn)步驟解析
相關(guān)文章
Java 超詳細(xì)講解數(shù)據(jù)結(jié)構(gòu)的應(yīng)用
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,讓我們一起來了解數(shù)據(jù)結(jié)構(gòu)是如何應(yīng)用的2022-04-04Java控制臺輸入數(shù)組并逆序輸出的方法實(shí)例
這篇文章主要介紹了Java手動輸入數(shù)組并逆向輸出的方法實(shí)例,需要的朋友可以參考下。2017-08-08SpringMVC中@RequestMapping注解的實(shí)現(xiàn)
RequestMapping是一個用來處理請求地址映射的注解,本文主要介紹了SpringMVC中@RequestMapping注解的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01

Java8利用Stream實(shí)現(xiàn)列表去重的方法詳解

spring-boot項(xiàng)目啟動遲緩異常排查解決記錄

Struts2學(xué)習(xí)筆記(3)-DMI動態(tài)調(diào)用方式