一、fastjson的特点:
1.fastjson为alibaba提供的一个开源的json格式数据的解析转换工具,相比于其他诸如json-api,jackson,Gjson(google的),fastjson的解析与转换速度是最快的,这是fastjson区别于其他json库的主要特征。
2.fastjson功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;
3.使用时不需要其他依赖,只需要引入一个fastjson.jar 即可。
二、fastjson经常使用的方法有:
1.public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
2.public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
3.public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
4.public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
5.public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
6.public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
7.public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
8.public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
其实使用json时,无外乎就是:
1.Json格式字符串和Json对象之间的互转;
2.Json格式字符串和JavaBean之间的互转(注意,这时JavaBean的属性和Json串中的名称要保持一致才行);
3.Json对象和JavaBean之间的互转;
JavaBean和Json数据之间转换时,如果是json对象,就对应JavaBean普通对象,如果是json数组,就对应java中的List等集合。
以上这些应用场景fastjson提供的方法都能够满足使用。
三、json基本概念说明:
1.Json:JavaScript的对象表示法,就是使用和JavaScript一样的语法格式定义来定义Json数据格式,所以叫JavaScript的对象表示法,其实和JavaScript并没什么关系。
2.Json分为 Json对象和Json数组
Json对象:{"teacherName":"zhangsan","teacherAge":20,"students":[{"studentName":"lisi","studentAge":24},{"studentName":"zhangsan","studentAge":23}]}
Json数组:[{"studentName":"lisi","studentAge":24},{"studentName":"zhangsan","studentAge":23}]
3.Json字符串,就是Json对象和Json数组的字符串形式,上面的字符串的形式就表示为:
Json对象类型字符串:
"{"teacherName":"zhangsan","teacherAge":20,"students":[{"studentName":"lisi","studentAge":24},{"studentName":"zhangsan","studentAge":23}]}"
Json数组类型字符串:
"[{"studentName":"lisi","studentAge":24},{"studentName":"zhangsan","studentAge":23}]"
4.Json中序列化和反序列化的概念
序列化,就是将Json对象类型或JavaBean转换为Json字符串的表示形式,反序列化就是将Json字符串转换为Json对象或JavaBean的过程。
四、Spring MVC中使用fastjson
<mvc:annotation-driven>
<!--设置不使用默认的消息转换器-->
<mvc:message-converters register-defaults="false">
<!--配置spring的转换器-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter" />
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter" />
<!--配置fastjson中实现HttpMessageConverter接口的转换器-->
<bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter4" >
<!--加入支持的媒体类型,返回contentType-->
<property name="supportedMediaTypes">
<list>
<!--这里顺序不能反,一定要先写text/html,不然IE下会出现下载提示-->
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
参考文章: