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;
    }
}

fastJson使用的更多相关文章

  1. fastjson 混淆注意事项

    使用fastjson 注意事项,主要表现: 1.加了符号Annotation 的实体类,一使用就会奔溃 2.当有泛型属性时,一使用就奔溃 在调试的时候不会报错,当你要打包签名混淆包的时候,就会出现上述 ...

  2. Java的Json解析包FastJson使用

    阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser. ...

  3. FASTJSON

    package com.hanqi.test; import java.util.ArrayList;import java.util.Date;import java.util.List; impo ...

  4. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  5. Android原生json和fastjson的简单使用

    android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...

  6. FastJson的简单实用

    一.FastJson的理解 在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON ...

  7. Android JSON、GSON、FastJson的封装与解析

    声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...

  8. java分享第十三天(fastjson生成和解析json数据,序列化和反序列化数据)

     fastjson简介:Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack ...

  9. FastJson和AsyncHttpCLient

    Android的展示数据,除了上章所讲的本地存储外,大部分数据都来自于网络.首先介绍一下Android APP开发常见的网络操作方式.从网络层面上有底层的tcp/ip,也就是我们常见的socket套接 ...

随机推荐

  1. C#网络编程数据传输中封装数据帧头的方法

    在C/S端编程的时候,经常要在C端和S端之间传数据时自定义一下报文的帧头,如果是在C/C++,封装帧头是一件很简单的事情,直接把unsigned char *强转为struct就行,但是在C#中,并没 ...

  2. JSP复习整理(三)基本语法续

    查看注册后的信息: TestBean.java package com.hai.xaio.cn; public class TestBean { public String userName; pub ...

  3. vue笔记

    安装vue脚手架工具 sudo cnpm install -g vue-cli

  4. nodeJS(express4.x)+vue(vue-cli)构建前后端分离详细教程(带跨域)

    好想再回到大学宿舍,当时床虽小,房随小,但是心确是满的 ----致  西安工程大学a-114舍友们 转载请注明出处:水车:http://www.cnblogs.com/xuange306/p/6185 ...

  5. APP里如何添加本地文本

    首先考虑到用webview加载,那么久需要把文本转化成html的形势啊:如下,先把文字放到一个文本里,然后 文本转换H5: 1.在word中将文件格式布局 2.word中文本标题设为宋体标题,设字号, ...

  6. MS Sql Server

    # 安装SQL2000时总是提示:以前的某个程序安装已经在安装计算机上创建挂起的文件操作 原文:https://zhidao.baidu.com/question/424367402.html # S ...

  7. Android 常用代码

    1.单元测试 然而可以直接建立单元测试 <uses-library android:name="android.test.runner"/> 放在application ...

  8. C# 图片无损压缩

    /// <summary> /// 图像缩略图处理 /// </summary> /// <param name="bytes">图像源数据&l ...

  9. 被Unity5坑惨了

    各种不明所以的crash,导致crash率从0.5%瞬间暴涨到10%. Unity5还是非常不稳定,慎入慎入...

  10. html传值 location.search取

    $(function() { var url = decodeURI(location.search); if (url.indexOf("?") != -1) { var str ...