FastJson学习随笔

     FastJson是由阿里巴巴工程师写的一款是性能很好的用 Java 语言实现的 JSON 解析器和生成器。目前是市面上最好用json工具,不仅速度快,而且十分强大支持(普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum,无依赖,不需要例外额外的jar,能够直接跑在JDK上)。总之,解析或者生成json,FastJson你值得拥有。

   使用FastJson的第一步当然是引入jar包了,如果是maven项目需要在pom.xml中加入

		<!-- fastjson -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.30</version>
		</dependency>
   如果是普通的JavaWeb项目就去官网下载吧!

  FastJson常用的方法:

import com.alibaba.fastjson.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> 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。
代码示例:

public static void main(String[] args) {
		String json="{\"code\":200,\"message\":\"查询成功\",\"data\":[{\"id\":1,\"age\":22,\"name\":\"zhangsan\"},{\"id\":1,\"age\":22,\"name\":\"zhangsan\"}]}";
		System.out.println(json.toString());
		//将String字符串转换成json
		JSONObject obj=JSONObject.parseObject(json);
		
		//从json中得到字符串
		String message=obj.getString("message");
		System.out.println(message);
		//从json中得到list集合
		String data=obj.getString("data");
		List<PersonInfo> list=obj.parseArray(data, PersonInfo.class);
		System.out.println(list);
		//将JavaBean转换为json
		for(PersonInfo per:list){
			System.out.println(JSONObject.toJSON(per));
		}
	}
	
运行结果为:

{"code":200,"message":"查询成功","data":[{"id":1,"age":22,"name":"zhangsan"},{"id":1,"age":22,"name":"zhangsan"}]}
查询成功
[PersonInfo(id=1, age=22, name=zhangsan), PersonInfo(id=1, age=22, name=zhangsan)]
{"id":1,"name":"zhangsan","age":22}
{"id":1,"name":"zhangsan","age":22}

FastJson还是比较方便快捷的。

分享一个封装了FastJson的jsonUtil

 

package com.rlist.constants;

import java.math.BigDecimal;

import org.apache.commons.lang3.StringUtils;

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

import lombok.extern.slf4j.Slf4j;

/**
 * 
 * @classDesc: 功能描述:(对阿里巴巴旗下fastjson json封装)
 * @author: 
 * @createTime: 2017年5月9日 下午7:18:37
 * @version: v1.0
 * @copyright:
 */
@Slf4j
public class JSONUtils {

	/**
	 * 功能说明:获取JSONObject对象
	 */
	public static JSONObject getJSONObject(JSONObject obj, String key) {
		if (!obj.containsKey(key)) {
			return null;
		}
		return obj.getJSONObject(key);

	}

	/**
	 * 功能说明:获取String
	 */
	public static String getString(JSONObject obj, String key) {
		if (!obj.containsKey(key)) {
			return null;
		}
		return obj.getString(key);
	}

	/**
	 * 功能说明:获取BigDecimal
	 */
	public static BigDecimal getBigDecimal(JSONObject obj, String key) {
		if (!obj.containsKey(key)) {
			return null;
		}
		return obj.getBigDecimal(key);
	}

	/**
	 * 功能说明:将JSON字符穿
	 */
	public static JSONObject parseObject(String json) {
		if (StringUtils.isEmpty(json)) {
			return null;
		}
		JSONObject parseObject = null;
		try {
			parseObject = JSONObject.parseObject(json);
		} catch (Exception e) {
			log.error("parseObject()  ERROR:" + e);
		}
		return parseObject;
	}

	/**
	 * 功能说明:将JSON字符串转为JSONARRAY
	 */
	public static JSONArray parseJSONArray(String json) {
		if (StringUtils.isEmpty(json)) {
			return null;
		}
		JSONArray JSONArray = null;
		try {
			JSONArray = JSONObject.parseArray(json);
		} catch (Exception e) {
			log.error("parseObject()  ERROR:" + e);
		}
		return JSONArray;
	}

	/**
	 * 功能说明:将JSON字符穿
	 */
	public static JSONArray getJSONArray(JSONObject obj, String key) {
		if (!obj.containsKey(key)) {
			return null;
		}
		return obj.getJSONArray(key);
	}

	/**
	 * 功能说明: 获取json long结果
	 */
	public static Long getLong(JSONObject obj, String key) {
		if (!obj.containsKey(key)) {
			return null;
		}
		Long value = null;
		try {
			value = obj.getLong(key);
		} catch (Exception e) {
			log.error("getLong() ERROR:", e);
		}
		return value;
	}

}



   

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值