zoukankan      html  css  js  c++  java
  • 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 的使用总结

  • 相关阅读:
    查询语句
    索引的增删改成查
    pymysql模块
    mysql备份
    单表查询语法
    单表查询
    mysql增删改差
    Leetcode--1. Two Sum(easy)
    Leetcod--20. Valid Parentheses(极简洁的括号匹配)
    Leetcode-448. Find All Numbers Disappeared in an Array(solve without extra space easy)
  • 原文地址:https://www.cnblogs.com/hanszhao/p/9831310.html
Copyright © 2011-2022 走看看