实用的JSON工具类

整理了一波常用的JSON工具类


package arithmetic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * 和json有关的工具类
 * @author liujd
 *
 */
public class JsonUtil {

	/**
	 * 将对象序列化为JSON文本
	 * 将该对象转换为json数组  ,再转为字符串
	 * @param object
	 * @return
	 */
	public static String toJSONString(Object object) {
		JSONArray array = JSONArray.fromObject(object);
		return array.toString();
	}
	/**
	 * 将List集合转为JSON文本
	 * 先转为json数组 再转为字符串
	 * @param <T>
	 * @param list
	 * @return
	 */
	public static <T> String toJSONStirng(List<T> list) {
		JSONArray array = JSONArray.fromObject(list);
		return array.toString();
	}
	/**
	 * 将JSONArray转为json字符串
	 * @param jsonArray
	 * @return
	 */
	public static String toJSONString(JSONArray jsonArray) {
		return jsonArray.toString();
	}
	
	/**
	 * 将JSONObject转为json字符串
	 * @param jsonObject
	 * @return
	 */
	public static String toJSONString(JSONObject jsonObject) {
		return jsonObject.toString();
	}
	
	/**
	 * 将一个对象转为HashMap
	 * 先将对象转换为JSONObject 
	 * 获取这个对象的keys
	 * 遍历这个keys  得到每一个key以及它对应的value
	 * 将key和value添加到集合里面
	 * @param object
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static HashMap toHashMap(Object object) {
		HashMap<String,Object> map = new HashMap<>();
		JSONObject jsonObject = JSONObject.fromObject(object);
		Iterator keys = jsonObject.keys();
		while(keys.hasNext()) {
			String key = String.valueOf(keys.next());
			Object value = jsonObject.get(key);
			map.put(key, value);
		}
		return map;
	}
	/**
	 * 通过json来将一个对象转为List集合(存所有的值)
	 * 先将这个对象转换为一个JSON数组 
	 * 然后遍历这个数组 将每一项都转为JSON对象 取得所有的键值对 
	 * 遍历键值对 得到所有的值  再把所有的值添加到集合里面
	 * @param object
	 * @return
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static List toList(Object object) {
		List list = new ArrayList();
		JSONArray array = JSONArray.fromObject(object);
		
		Iterator iterator = array.iterator();
		while(iterator.hasNext()) {
			//获取到每一个对象
			JSONObject jsonObj = (JSONObject)iterator.next();
			//获取到每一个json对象的键值对
			Iterator keys = jsonObj.keys();
			//遍历键值对
			while(keys.hasNext()){
				Object key = keys.next();
				Object value = jsonObj.get(key);
				list.add(value);
			}
		}
		return list;
	}
	/**
	 * 通过json来将一个对象转为List集合(存所有的键值对)
	 * 先将这个对象转换为一个JSON数组 
	 * 然后遍历这个数组 将每一项都转为JSON对象 取得所有的键  
	 * 遍历键值对 得到所有的键和值  再把所有的键和值添加到map集合里面
	 * 将map添加到list里面
	 * @param object
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static List<HashMap<String, Object>> toListConHash(Object object) {
		List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		JSONArray jsonArray = JSONArray.fromObject(object);
		Iterator iterator = jsonArray.iterator();
		while(iterator.hasNext()) {
			JSONObject obj = (JSONObject)iterator.next();
			HashMap<String, Object> map = new HashMap<>();
			Iterator keys = obj.keys();
			while(keys.hasNext()) {
				String key = String.valueOf(keys.next());
				Object value = obj.get(key);
				map.put(key, value);
			}
			list.add(map);
		}
		return list;
	}
	/**
	 * 将一个对象通过JSon转换为集合
	 * 通过JSONArray的静态方法
	 * @param object
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static Collection toCollection(Object object) {
		JSONArray array = JSONArray.fromObject(object);
		return JSONArray.toCollection(array);
	}
	/**
	 * 将一个对象转为JSON数组
	 * @param object
	 * @return
	 */
	public static JSONArray toJsonArray(Object object) {
		return JSONArray.fromObject(object);
	}
	
	/**
	 * 将一个对象转换为JSONObject
	 * @param object
	 * @return
	 */
	public static JSONObject toJsonObject(Object object) {
		return JSONObject.fromObject(object);
	}
	
	/**
	 * 将JSON数组转换为传入类型的List集合
	 * @param jsonArray
	 * @param objectClass
	 * @return
	 */
	@SuppressWarnings({ "unchecked", "deprecation" })
	public static <T> List<T> toList(JSONArray jsonArray,Class<T> objectClass) {
		return JSONArray.toList(jsonArray, objectClass);
	}
	
	/**
	 * 将对象转换为传入类型的List集合
	 * @param object
	 * @param objectClass
	 * @return
	 */
	@SuppressWarnings({ "deprecation", "unchecked", "static-access" })
	public static <T> List<T> toList(Object object,Class<T> objectClass) {
		JSONArray jsonArray = JSONArray.fromObject(objectClass);
		return jsonArray.toList(jsonArray, objectClass);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值