欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Web項(xiàng)目中Spring框架處理JSON格式數(shù)據(jù)的方法

 更新時(shí)間:2016年05月25日 16:35:16   作者:godlike  
Spring MVC是個(gè)靈活的框架,返回JSON數(shù)據(jù)的也有很多五花八門的方式,這里我們來(lái)整理一個(gè)最簡(jiǎn)單的Java Web項(xiàng)目中Spring框架處理JSON格式數(shù)據(jù)的方法:

json是一種常見(jiàn)的傳遞格式,是一種鍵值對(duì)應(yīng)的格式。并且數(shù)據(jù)大小會(huì)比較小,方便傳遞。所以在開(kāi)發(fā)中經(jīng)常會(huì)用到j(luò)son。

首先看一下json的格式:

{key1:value1,key2:value2}

每一個(gè)建對(duì)應(yīng)一個(gè)值,每個(gè)鍵值對(duì)之間用逗號(hào)連接。并且最后一個(gè)鍵值對(duì)之后沒(méi)有逗號(hào),整體需要有大括號(hào)括起來(lái)。

一般正常的servlet返回json時(shí),會(huì)像下面這樣:

response.setContentType("text/JSON;charset=utf-8");
response.getWriter().print(gson.toJson(page));
response.getWriter().flush();
response.getWriter().close();
return null;

這樣相對(duì)來(lái)說(shuō)比較麻煩,也不好封裝。新版spring返回json時(shí),可以通過(guò)@ResponseBody直接返回,這點(diǎn)做得很不錯(cuò),大概代碼如下:

@Controller
@RequestMapping("/json")
public class JsonController {
  @RequestMapping(value="{provinceId}",method = RequestMethod.GET)
  @ResponseBody
  public String pagination(@PathVariable String provinceId){
    return getJsonData(provinceId);
  }
}

訪問(wèn)方式如下:http://localhost:8080/spring3/action/json/1,有一點(diǎn)需要注意下,那就是訪問(wèn)spring mvc的controller時(shí)中間加了個(gè)/action,那是因?yàn)镈ispatcherServlet的映射路徑如果直接使用/*的話,會(huì)將相應(yīng)的jsp屏蔽掉,所以一定得加個(gè)前綴以區(qū)別jsp與controller.

上面的json中如果有中文的話,會(huì)出現(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)過(guò)這些步驟后,對(duì)json的處理就相當(dāng)方便了。

相關(guān)文章

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

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

    這篇文章主要為大家介紹了Java利用Stream實(shí)現(xiàn)列表去重的幾種方法詳解,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2022-04-04
  • spring-boot項(xiàng)目啟動(dòng)遲緩異常排查解決記錄

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

    這篇文章主要為大家介紹了spring-boot項(xiàng)目啟動(dòng)遲緩異常排查解決記錄,突然在本地啟動(dòng)不起來(lái)了,表象特征就是在本地IDEA上運(yùn)行時(shí),進(jìn)程卡住也不退出,應(yīng)用啟動(dòng)時(shí)加載相關(guān)組件的日志也不輸出
    2022-02-02
  • Struts2學(xué)習(xí)筆記(3)-DMI動(dòng)態(tài)調(diào)用方式

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

    本文主要介紹Struts2的DMI動(dòng)態(tài)調(diào)用的兩種方式,簡(jiǎn)單實(shí)用,希望能給大家做一個(gè)參考。
    2016-06-06
  • Java synchronized輕量級(jí)鎖的核心原理詳解

    Java synchronized輕量級(jí)鎖的核心原理詳解

    這篇文章主要為大家詳細(xì)介紹了Java synchronized輕量級(jí)鎖的核心原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Java mybatis-plus詳解

    Java mybatis-plus詳解

    MyBatis-Plus是一個(gè)MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增強(qiáng)不做修改,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生,本文給大家詳細(xì)講解一下MyBatis-Plus,需要的朋友參考下吧
    2021-09-09
  • 最新評(píng)論