fastjson 使用笔记

最近工作中用到fastjson和jackjson(原生json大家都用过的~~~),做下笔记, 这里先说下fastjson的主要API用法。

一、fastjson介绍:

摘自官方介绍: Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Fastjson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of. 由于英语水平不行借助翻译软件翻译下:Fastjson是一个Java库,它可以用来将Java对象转换为JSON表示。它还可以用于将一个JSON字符串转换为一个等价的Java对象。Fastjson可以与任意Java对象一起工作,包括预先存在的对象 附GitHub地址 https://github.com/alibaba/fastjson fastjson的优点:

  1. 遵循http://json.org标准,为其官方网站收录的参考实现之一。
  2. 功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
  3. 无依赖,不需要例外额外的jar,能够直接跑在JDK上。

二、引入fastjson

maven依赖:

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

如果非maven项目下载对应jar即可 地址: http://repo1.maven.org/maven2/com/alibaba/fastjson/

三、核心API用法:

 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> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> 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.mcgrady.test.fastjson;

import java.util.ArrayList;
import java.util.List;

public class Group {
	private Long id;
	private String name;
	private List<User> users = new ArrayList<User>();

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<User> getUsers() {
		return users;
	}

	public void setUsers(List<User> users) {
		this.users = users;
	}

	@Override
	public String toString() {
		return "Group [id=" + id + ", name=" + name + ", users=" + users + "]";
	}

}


package com.mcgrady.test.fastjson;

public class User {
	private Long id;
	private String name;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + "]";
	}

}

使用Junit进行测试演示 :

package com.mcgrady.test.fastjson;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/*
  alibaba fastjson 测试类
**/
public class FastjsonTest {
	@Test
	public void testMethod1() {

		Group group = new Group();
		group.setId(1001L);
		group.setName("haaopeng");

		User guestUser = new User();
		guestUser.setId(1002L);
		guestUser.setName("mcgrady");

		User rootUser = new User();
		rootUser.setId(1003L);
		rootUser.setName("root");

		group.getUsers().add(guestUser);
		group.getUsers().add(rootUser);
		// 1.public static final String toJSONString(Object object, boolean
		// prettyFormat);
		// String jsonString = JSON.toJSONString(group);

		// 把javabean序列化为带格式的JSON字符串
		String jsonString = JSON.toJSONString(group);

		System.out.println("1.toJSONString(Object) 将javabean转为json----> " + jsonString);

		// 2.public static final Object toJSON(Object javaObject);
		// 将JavaBean转换为JSONObject或者JSONArray

		// System.out.println(JSON.toJSON(group));
		List<User> userList = new ArrayList<User>();
		userList.add(guestUser);
		userList.add(rootUser);
		String userbeanStr = JSON.toJSON(guestUser).toString();
		System.out
				.println("2.toJSON(Object javaObject) 将javabean转为jsonobject或者jsonarray---> " + JSON.toJSON(guestUser));
		String jsonarrayStr = JSON.toJSON(userList).toString();

		// 3.public static final Object parse(String text);
		// 把JSON文本parse为JSONObject或者JSONArray

		String jsonStr = "{\"id\":0,\"name\":\"admin\",\"users\":[{\"id\":2,\"name\":\"guest\"},{\"id\":3,\"name\":\"root\"}]}";
		Object obj = JSON.parse(jsonStr);
		if (obj instanceof JSONObject) {
			System.out.println("3.parse(String text) 将串转为jsonobject---> " + (JSONObject) obj);
		} else if (obj instanceof JSONArray) {
			System.out.println("3.parse(String text) 将串转为jsonarray---> " + (JSONArray) obj);
		}

		// 4.public static final Object parse(String text);
		// 把JSON文本parse为JSONObject或者JSONArray

		System.out.println(
				"4.parseObject:将object串转化为JSONObject--->  " + JSON.parseObject("{\"id\":2,\"name\":\"guest\"}"));
		// 5. public static final JSONArray parseArray(String text); //
		// 把JSON文本parse成JSONArray
		System.out.println("5.parseArray:将array串转化为JSONArray--->  " + JSON.parseArray(jsonarrayStr));
		// 6.public static final <T> T parseObject(String text, Class<T> clazz);
		// // 把JSON文本parse为JavaBean
		User user = null;
		user = JSON.parseObject(userbeanStr, User.class);
		System.out.println("6. <T> T parseObject(String text, Class<T> clazz) 将jsonobject串转为javabean  ---> " + user);
		// 7. public static final <T> List<T> parseArray(String text, Class<T>
		// clazz); //把JSON文本parse成JavaBean集合
		List<User> list1 = null;
		list1 = JSON.parseArray(jsonarrayStr, User.class);
		System.out.println(" 7.<T> List<T> parseArray(String text, Class<T> clazz) 将jsonarray串转为list集合--->  " + list1);

	}

}

转载于:https://my.oschina.net/u/3218855/blog/913883

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值