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. inotify监控文件变化

    1.安装inotify-tools yum install make  gcc gcc-c++  #安装编译工具 inotify-tools下载地址:http://github.com/downloa ...

  2. Myeclipse导包总是报错,jar包路径都没问题

    是访问限制报错. 方法一: 全局属性Project>preferences>java>Compiler>Errors/Warnings>把右侧的[Deprecated a ...

  3. sqlserver 中数据导入到mysql中的方法以及注意事项

    数据导入从sql server 到mysql (将数据以文本格式从sqlserver中导出,注意编码格式,再将文本文件导入mysql中): 1.若从slqserver中导出的表中不包含中文采用: bc ...

  4. word

    # word中向下箭头 原文:http://jingyan.baidu.com/article/c1465413b0a9c70bfcfc4cbc.html 使用替换功能,把^l(l是小写的L)替换为^ ...

  5. Delphi的分配及释放---New/Dispose, GetMem/FreeMem及其它函数的区别与相同

    转载自:http://www.cnblogs.com/qiusl/p/4028437.html?utm_source=tuicool 我估摸着内存分配+释放是个基础的函数,有些人可能没注意此类函数或细 ...

  6. 卸载oracle 11g grid软件

    一,使用deinstall 同样,卸载grid软件在11g中也推出了了卸载工具deinstall卸载同卸载oracle数据库软件 具体可参考:Behaviour of the Oracle De-in ...

  7. ppmoney

    build/config.js 改 8080端口 build/webpack.dev.conf.js 改路径简写 alias:{ 'vux-components':'vux/dist/componen ...

  8. 教你实践ASP.NET Core Authorization

    本文目录 Asp.net Core 对于授权的改动很友好,非常的灵活,本文以MVC为主,当然如果说webapi或者其他的分布式解决方案授权,也容易就可以实现单点登录都非常的简单,可以使用现成的Iden ...

  9. Cocos2d-x 生成真正的随机数

    关于随机数 cocos2d-x 定义了一个宏 CCRANDOM_0_1 生成的是 [0, 1] 之间的值 因此,要生成  [0-100] 之间的数    CCRANDOM_0_1 * 100 生成 [ ...

  10. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...