json一个工具类


一个json工具类


 
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

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

import org.apache.log4j.Logger;
 

public class JsonToBean {

	static Logger logger = Logger.getLogger(JsonToBean.class);
	
	@SuppressWarnings("rawtypes")
	public static Map<String, Object> jsonToBean(String json,Class cla ) throws Exception {
		logger.info("================json to bean serv du======================");
		Map<String,Object> map = new HashMap<String,Object>();
		JSONObject jsonObject = JSONObject.fromObject(json);			
		map.put("error_code" , "success" );
		map.put("object", parse(jsonObject,cla));
		return map;
	}

	@SuppressWarnings("unchecked")
	public static Map<String, Object> jsonToMap(String jsonStr) throws Exception{
		//最外层解析  
        if(jsonStr!=null&&jsonStr.startsWith("{")&&jsonStr.endsWith("}")){
            Map<String, Object> map = new HashMap<String, Object>();  
            
            JSONObject json = JSONObject.fromObject(jsonStr);  
            for(Object k : json.keySet()){
                
                Object v = json.get(k);   
                //如果内层还是数组的话,继续解析  
                if(v instanceof JSONArray){  
                    List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();  
                    Iterator<JSONObject> it = ((JSONArray)v).iterator();  
                    while(it.hasNext()){  
                        JSONObject json2 = it.next();  
                        list.add(jsonToMap(json2.toString()));  
                    }  
                    map.put(k.toString(), list);  
                } else {  
                    Map<String, Object> m = jsonToMap(v.toString());
                    if(m==null)
                        map.put(k.toString(), v);
                    else 
                        map.put(k.toString(), m);  
                }  
            }  
            return map;  
        }else{
            return null;
        }	
	}
	
	public static Map<String, String> jsonToMapStr(String jsonStr) throws Exception {
		Map<String, String> map = new HashMap<String, String>(); 
		//一层解析  
		if(jsonStr!=null&&jsonStr.startsWith("{")&&jsonStr.endsWith("}")){	
			JSONObject json = JSONObject.fromObject(jsonStr);  
			for(Object k : json.keySet()){
				Object v = json.get(k);  
				map.put(k.toString(), v.toString());             

			}  
			return map;  
		}else{
			return map;
		}
	}
	

	public  static String mapToJson(Map<String, Object> map) {
		JSONObject jsonObject1 = JSONObject.fromObject(map);     
		return jsonObject1.toString();                              
	}
 

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public  static Object parse(JSONArray jsonArray,String subType,Class clazz) throws Exception{
		List list = new ArrayList();
		for(Object o : jsonArray){
			if(EcaopFieldType.STRING.equals(subType)
					|| EcaopFieldType.INT.equals(subType)
					|| EcaopFieldType.LONG.equals(subType)
					|| EcaopFieldType.DOUBLE.equals(subType)
					|| EcaopFieldType.BOOLEAN.equals(subType)){
				list.add(o);
			}else if(EcaopFieldType.OBJECT.equals(subType)){
				list.add(parse((JSONObject) o ,clazz));
			}else if(EcaopFieldType.LIST.equals(subType)){
				list.add(parse((JSONArray) o,EcaopFieldType.OBJECT ,clazz));
			}
		}
		return list;
	}
	
	public static Object jsonInfoToBean(String json_info, Class<?> clazz ){
		JSONObject jsonObject = JSONObject.fromObject(json_info);
	   
		return  JSONObject.toBean(jsonObject, clazz);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值