阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

源码地址:https://github.com/alibaba/fastjson

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
*public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
*public static final  T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean 
*public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
*public static final  List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合 
*public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
 
以上加*的是一些项目中的常用方法。
以下是自己练习写的代码:
package com.test;

public class TestPerson {
private int age;
private String name; public TestPerson(){ } public TestPerson(int age,String name){
this.age=age;
this.name=name;
} public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
} package com.test;
import java.util.*; import com.alibaba.fastjson.*; public final class TestFastJson { public static void main(String[] args) {
// TODO Auto-generated method stub TestPerson json = new TestPerson(19,"李明");
List<TestPerson> list = new ArrayList<TestPerson>();
list.add(json);
list.add(new TestPerson(12,"张三"));
//将集合或者对象序例化成JSON
System.out.println(JSON.toJSON(json));
System.out.println( JSON.toJSON(list) );
//Json串反序列化成对象
TestPerson person = JSON.parseObject("{\"name\":\"李明\",\"age\":19}", TestPerson.class);
System.out.printf("name:%s,age:%d\n",person.getName(),person.getAge()); String str = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]";
//数组对象反序列化成集合
List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.class); for(TestPerson item : listPerson){
System.out.println( item.getName() );
System.out.println( item.getAge());
} //没有对象直接解析JSON对象
JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}");
System.out.printf("name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age")); //没有对象直接解析JSON数组
JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"); for(int i=0,len=jarr.size();i<len;i++){
JSONObject temp= jarr.getJSONObject(i);
System.out.printf("name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age"));
} for(Object obj:jarr){
System.out.println(obj.toString());
} } }

  

 
 

Java的Json解析包FastJson使用的更多相关文章

  1. 阿里的Json解析包FastJson使用

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

  2. Json解析包FastJson使用

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

  3. Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]

    Android总结之json解析(FastJson Gson 对比)[申明:来源于网络] 地址:http://blog.csdn.net/u014031072/article/details/5392 ...

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

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

  5. 来自阿里的 json 解析方案 fastjson

    说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快 ...

  6. 75、JSON 解析库---FastJson, Gson

    JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交 ...

  7. Java:JSON解析工具-org.json

    一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网 ...

  8. Java操作JSON数据(3)--fastjson操作JSON数据

    fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.本文介绍下fastjs ...

  9. 几种Java的JSON解析库速度对比

    java中哪个JSON库的解析速度是最快的? JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去 ...

随机推荐

  1. mac mysql5.7重置root密码

    先停止mysql服务 //停止表权限 cd /usr/local/mysql/bin/ ./mysqld_safe --skip-grant-tables & 直接mysql 进入数据库 up ...

  2. express不是内部或外部命令

    网上找了一下原因,是因为express在4.0以后把命令工具单独分出来了,所以安装完express后,还得再安装express-generator: 如果不是采用的全局安装,则需要把 "安装 ...

  3. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  4. IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换

    /* * 用于实现 IRandomAccessStream, IBuffer, Stream, byte[] 之间相互转换的帮助类 */ using System;using System.IO;us ...

  5. centos6.5 更新yum源

    在使用centos过程中,自带的yum源包,不能满足的情况下,这个时候就可以考虑升级yum源了.国内用的比较多的是163镜像地址为http://mirrors.163.com/.help/centos ...

  6. Python 静态方法、类方法

    今天我们来讨论一下Python类中所存在的特殊方法--静态方法.类方法. 一.定义 静态方法: 一种简单函数,符合以下要求: 1.嵌套在类中. 2.没有self参数. 特点: 1.类调用.实例调用,静 ...

  7. JQuery------日期格式转换

    转载: http://www.jb51.net/article/76548.htm 方法: Date.prototype.Format = function (fmt) { //author: mei ...

  8. App.config“配置系统未能初始化” 异常解决 C#

    System.Configuration.ConfigurationManager.AppSettings["user"]; 时出现“配置系统未能初始化” 错误 解决办法: 如果配 ...

  9. 基于tomcat与Spring的实现差异化配置方案

    起因 在实际开发过程中经常需要加载各种各样的配置文件..比如数据库的用户名密码,要加载的组件,bean等等..但是这种配置在各个环境中经常是不一样的....比如开发环境和测试环境,真实的生产环境.. ...

  10. [Storm] No data flows into bolt

    最近在HDP2.1的HBase环境中安装了一个Storm测试机器(单节点,JDK8),遇到了几个问题,记录下来. 尝试步骤 1. 使用和HBase一样HDP版本,直接安装Storm yum insta ...