Java的Json解析包FastJson使用

阿里巴巴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());
		}

	}

}

  

时间: 2024-10-11 11:51:54

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

Json解析之FastJson

1.FastJson介绍 FastJson是阿里巴巴提供的一个Json处理工具包,具有极快的性能,超越任其他的Java Json parser.使用起来非常方便. 2.例程 首先下载fastjson-1.1.27-android.jar包并导入工程中: DataBean.java: package com.heqiang.testactivity; public class DataBean{ private String name; private String url; private St

来自阿里的 json 解析方案 fastjson

说起Json 解析,有很多方法,无论是出自Google 的Gson也好,还是来自其他的某某,想必大家都很熟悉.今日在github上闲逛,偶遇 一 json 解析库,看起来很不错,据说是目前最快的解析JOSN 方案.该东东为何神器,他就是来自于阿里团队的  fastjson. 为了方便起见,参考如下代码. 用maven 的同学就方便多了,直接双击打开你的pom.xml 文件,添加如下依赖 <dependency> <groupId>com.alibaba</groupId>

Java:JSON解析工具-org.json

一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网址https://github.com/douglascrockford/JSON-java下载org.json源码,并将源码其加入到Eclipse中,即可调用. 2.查看相关的API文档,访问:https://github.com/douglascrockford/JSON-java. https

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

JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交换传输. 易于人阅读和编写,同时也易于机器解析和生成. 基本结构:对象.数组. Gson 的简介和特点: Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. 快速.高效 代码量少

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

java中哪个JSON库的解析速度是最快的? JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上它们的确是不太一样的.因此,我们运行了一个基准测试来对常用的几个JSON库进行了测 试,看看在解析不同大小的文件时哪个库的速度是最快的.下面我会把结果分享给大家. JSON通常用于传输及解析大文件.这对运行在Hadoop或者是Spark集群上的数据处理程

Android平台json解析(FastJson Gson 大比拼)

前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和使用的大比拼. FastJson 当前使用版本 fastjson-1.2.11.jar 下载地址http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/ 对象转化成json: /** * 对象转化为json fastjson 使用方式 *

Java中Json解析

首先准备一个JSON格式的字符串 * String JsonStr = "{object:{persons:" + "[{name:'呵呵',image:'http://10.0.159.132:8080/Web/s1.png'}," + "{name:'哈哈',image:'http://10.0.159.132:8080/Web/s1.png'}," + "{name:'嘿嘿',image:'http://10.0.159.132:

Android 中的Json解析工具fastjson 、序列化、反序列化

Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:    速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson: 功能强大,完全支持JavaBean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持And

关于浮点数的json解析

最近在工作中遇到个问题 通过post请求从其它系统(好像是C#写的)获得json字符串 {"geometry":{"rings":[[[40426489.331430912,3001752.0858958033],[40426225.692211367,3001750.0779145896],[40426202.957955509,3001594.0301330695],[40426290.959128119,3001559.0584689],[40426390.7