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

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

 更新時間:2016年05月25日 16:35:16   作者:godlike  
Spring MVC是個靈活的框架,返回JSON數(shù)據(jù)的也有很多五花八門的方式,這里我們來整理一個最簡單的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)方便了。

相關(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)目啟動遲緩異常排查解決記錄

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

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

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

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

    Java synchronized輕量級鎖的核心原理詳解

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

    Java mybatis-plus詳解

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