json-lib 实现Java对象与json的互转

本文介绍如何使用json-lib库实现Java对象与JSON数据之间的相互转换,并提供了一系列实用的转换方法,包括数组、列表、地图及Java Bean的转换。
json是前后端交互数据的常用方式,json的转换库有很多种,下面简单介绍使用json-lib实现Java对象与json数据的相互转换。

json-lib的jar包,下载地址为:https://sourceforge.net/projects/json-lib/,同时该jar包还依赖commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar、ezmorph-1.0.6.jar等五个jar包。依赖的jar包如下图。


json-lib提供了的核心类包括JSONObject、JSONArray。从类的名字上可以看出JSONObject转化的应该是对象格式的,而JSONArray转化的则应该是数组对象的。
以下为测试代码:

/*
 *	Title:TestJson.java<br>
 * 	Date: 2017年1月3日 上午9:21:52<br>
 * 
 */
package testJson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

/**
 *  <br>
 * 
 * @version 1.0
 */
public class TestJson
{
	/**
	 * json串转为map
	 * @param <T>
	 * 
	 * @param params
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T> Map<T, T> paserJsonToMap(String params)
	{
		return paserJsonToEntity(params, Map.class);
	}

	/**
	 * json转为bean
	 * 
	 * @param param_json
	 * @param o
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T> T paserJsonToEntity(String params, Class<T> o)
	{

		JSONObject jb = JSONObject.fromObject(params);
		T instance = (T) JSONObject.toBean(jb, o);
		return instance;
	}
	@SuppressWarnings("unchecked")
	public static <T> T[] parseJsonToArray(String params,Class<T> o){
		  JSONArray jsonArray=JSONArray.fromObject(params);
		 return  (T[]) JSONArray.toArray(jsonArray,o);
	}
	@SuppressWarnings("unchecked")
	public static <T> List<T> parseJsonToList(String params,Class<T> o){
		  JSONArray jsonArray=JSONArray.fromObject(params);
		 return  JSONArray.toList(jsonArray, o);
	}
	/**
	 * list转为json
	 * @param <T>
	 * @param list
	 * @return
	 */
	public static <T> String listToJsonStr(List<T> list){
		JSONArray jsonArray = JSONArray.fromObject( list ); 
		return jsonArray.toString();
	}
	/**
	 * map转为json
	 * @param <T>
	 * @param map
	 * @return
	 */
	public static <T> String mapToJsonStr(Map<T,T> map){
		JSONObject json = JSONObject.fromObject(map);  
		return json.toString();
	}
	/**
	 * bean转为json
	 * @param obj
	 * @return
	 */
	public static String beanToJsonStr(Object obj){
		JSONObject jsonObject = JSONObject.fromObject(obj); 
		return jsonObject.toString();
	}
	/**
	 * 数组转为json
	 * @param objArray
	 * @return
	 */
	public static String arrayToJsonStr(Object[] objArray){
		JSONArray jsonArray = JSONArray.fromObject(objArray); 
		return jsonArray.toString();
	}
	public static void main(String[] args){
		//array互转
		System.out.println("\n-----array转换-----");
		String[] array=new String[]{"a","b","c"}; 
		String arrayStr=arrayToJsonStr(array);
		System.out.println(arrayStr);
		String[] resultArray=(String[]) parseJsonToArray(arrayStr, String.class);
		System.out.println(resultArray[0]);
		System.out.println("-----array转换-----");
		
		//list互转
		System.out.println("\n-----list转换-----");
		List<String> list=new ArrayList<String>();
		list.add("c");
		list.add("e");
		String listStr=listToJsonStr(list);
		List<String> resultList=parseJsonToList(listStr, String.class);
		System.out.println(resultList.get(0));
		System.out.println("-----list转换-----");
		
		//map互转
		System.out.println("\n-----map转换-----");
		Map<String,String> map = new HashMap<String,String>();  
		map.put("name", "sherry"); 
		map.put("gender", "man");
		String mapStr=mapToJsonStr(map);
		Map<String,String> resultMap=paserJsonToMap(mapStr);
		System.out.println(resultMap.get("name"));
		System.out.println("-----map转换-----");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值