fastJson使用

fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,由阿里巴巴的工程师开发。

主要特点:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson

  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

  • 零依赖(没有依赖其它任何类库除了JDK)

maven引用:

  <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.23</version>
        </dependency>

github地址:

  https://github.com/alibaba/fastjson

测试代码:普通转换json对象,格式化日期,序列化,反序列化

/**
* @ClassName: FastJson
* @date 2017年1月4日 上午9:37:04
*/
public class FastJson {
    public static void main(String[] args) {
        System.out.println("renwohua");
        test1();
        test2();
        test3();
        test4();
    }
    
    
/**对象的JSON序列化*/
public static void test1(){
    UserInfo userInfo=new UserInfo();
    userInfo.setAge(25);
    userInfo.setName("Bill");
    userInfo.setDate(new Date());
    //将对象转换为JSON字符串
    String strJson=JSON.toJSONString(userInfo);
    System.out.println("JSON="+strJson);
}

    
/**对象反序列化*/
public static void test2(){
 String json="{\"name\":\"chenggang\",\"age\":24,\"date\":1483494081855}";
 //反序列化
 UserInfo userInfo=JSON.parseObject(json,UserInfo.class);
 System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge());
 //输出毫秒值
 System.out.println(JSON.toJSONString(userInfo.getDate(), SerializerFeature.WriteDateUseDateFormat));
}

/**泛型的反序列化*/
public static void test3(){
  String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}";
  Map<String, UserInfo> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfo>>(){});
  System.out.println(map.get("user"));
 }

/**格式化日期**/
public static void test4(){
      Date date=new Date();  
      //输出毫秒值
      System.out.println(JSON.toJSONString(date));
      //默认格式为yyyy-MM-dd HH:mm:ss  
      System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));
      //根据自定义格式输出日期
      System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));
    }
}

class UserInfo implements Serializable{
     private String name;
     private int age;
     private Date date;
     public void setName(String name){
      this.name=name;
     }
     public String getName(){
      return name;
     }
    
     public void setAge(int age){
      this.age=age;
     }
     public int getAge(){
      return age;
     }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
}

上一篇:linux下环境变量设置的问题


下一篇:fastjson 混淆注意事项