FastJson使用,与springMvc整合
FastJson常用的API
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
// public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
// public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
// public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
// public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
// public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
// public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
// public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
// public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)
Spring 集成fastjson库
spring 中默认不支持fastjson api直接将java对象转换为json串,假如需要使用
fastjson 实现对象的转换,现阶段我们需要手动进行转换。
项目中添加fastjson依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.38</version>
</dependency>
创建controller,例如ResponseController,然后在类中添加相关方法,手动将java对象转换为json串。
@RequestMapping("doFastMap")
@ResponseBody
public String doFastMap(){
Map<String,Object> map=
new HashMap<>();
map.put("id", 100);
map.put("name", "AAA");
return JSON.toJSONString(map);
}//{"name":"AAA","id":100}
springMvc整合fastjson只需要在消息解析器里面配置下
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<!-- 配置Fastjson 替换原来的jackson支持 -->
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json</value>
</list>
</property>
<!--下面这段可以不配置-->
<property name="features">
<list>
<value>QuoteFieldNames</value> <!-- 输出key时是否使用双引号,默认为true -->
<value>WriteMapNullValue</value> <!-- 是否输出值为null的字段,默认为false -->
<!--
<value>DisableCircularReferenceDetect</value>
<value>WriteDateUseDateFormat</value>
<value>WriteNullStringAsEmpty</value> 字符类型字段如果为null,输出为"",而非null
<value>WriteNullNumberAsZero</value> 数值字段如果为null,输出为0,而非null
<value>WriteNullBooleanAsFalse</value> Boolean字段如果为null,输出为false,而非null
<value>WriteNullListAsEmpty</value> List字段如果为null,输出为[],而非null
-->
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
如果文章对你有帮助,欢迎点击上方按钮打赏作者