fastjson的使用

一、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>

参考文章:

高性能JSON框架之FastJson的简单使用 

fastjson 的使用总结

原文地址:https://www.cnblogs.com/hanszhao/p/9831310.html