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