天天看點

SpringMVC 通過 fastjson 使 Ajax 傳回 Json 對象

SpringMVC 傳回 Json 對象

web 開發中,通過 ajax 回調擷取 Json 對象的需求是每一名 web 者不可繞開的話題。在 SpringMVC 中如何實作呢?話不多少,且看以下步驟。

1. Controller 中 action 方法上添加注解 @ResponseBody。

    @ResponseBody 将内容或對象作為 HTTP 響應正文傳回,通過适當的HttpMessageConverter轉換為指定格式後,寫入到Response對象的body資料區。

2. 項目中添加 fastjson jar 包。

    fastjson 是阿裡封裝的一個Json處理工具包,包括“序列化”和“反序列化”兩部分,效率高、使用簡單是其最大的兩個特點。

    (關于 fasthson 更多資訊,可以上 GitHub 查找 https://github.com/alibaba/fastjson/wiki)

    如果您是 maven 項目,可通過以下方式配置 jar 包:

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.31</version>
</dependency>
           

3. SpringMVC 中添加 fastjson 配置。

<!-- 設定fastjson的特性 -->
<bean id="fastJsonConfig" class="com.alibaba.fastjson.support.config.FastJsonConfig">
   <property name="serializerFeatures">
      <array value-type="com.alibaba.fastjson.serializer.SerializerFeature">
         <!-- 消除對同一對象循環引用的問題,預設為false -->
         <value>DisableCircularReferenceDetect</value>
         <!-- 結果是否格式化,預設為false -->
         <value>PrettyFormat</value>
         <!-- 字元類型字段如果為null,輸出為”“,而非null  -->
         <value>WriteNullStringAsEmpty</value>
      </array>
   </property>
</bean>
<bean id="jsonConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter4">
   <property name="supportedMediaTypes" value="application/json;charset=UTF-8" />
   <property name="fastJsonConfig" ref="fastJsonConfig"></property>
</bean>
<!-- 加載fastjson配置 -->
<mvc:annotation-driven>
   <mvc:message-converters>
   <ref bean="jsonConverter"/>
   </mvc:message-converters>
</mvc:annotation-driven>
           

通過以上三步基本就完成了傳回 json 對象的配置,前端 ajax 請求和接受此處不再贅述。

轉載于:https://my.oschina.net/u/2563695/blog/909424