Json与javaBean之间的转换工具类

来源:互联网 发布:java吧 编辑:程序博客网 时间:2024/05/21 15:52
Json与javaBean之间的转换工具类





import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
 
/**
 * Json与javaBean之间的转换工具类
 *
 * @author Alex
 * @version 20160409
 *
 * {@code   现使用json-lib组件实现
 *          需要
 *              json-lib-2.4-jdk15.jar
 *              ezmorph-1.0.6.jar
 *              commons-collections-3.1.jar
 *              commons-lang-2.0.jar
 *          支持
 * }
 */
public class JsonPluginsUtil {
 
 
    /** 
     * 从一个JSON 对象字符格式中得到一个java对象 
     *  
     * @param jsonString 
     * @param beanCalss 
     * @return 
     */
    @SuppressWarnings("unchecked")
    publicstatic <T> T jsonToBean(String jsonString, Class<T> beanCalss) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
         
        returnbean;
         
    }
 
    /** 
     * 将java对象转换成json字符串 
     *
     * @param bean 
     * @return 
     */
    publicstatic String beanToJson(Object bean) {
 
        JSONObject json = JSONObject.fromObject(bean);
         
        returnjson.toString();
 
    }
     
    /** 
     * 将java对象转换成json字符串 
     *
     * @param bean 
     * @return 
     */
    publicstatic String beanToJson(Object bean, String[] _nory_changes,boolean nory) {
 
        JSONObject json =null;
         
        if(nory){//转换_nory_changes里的属性
             
            Field[] fields = bean.getClass().getDeclaredFields();
            String str ="";
            for(Field field : fields){
//              System.out.println(field.getName());
                str+=(":"+field.getName());
            }
            fields = bean.getClass().getSuperclass().getDeclaredFields();
            for(Field field : fields){
//              System.out.println(field.getName());
                str+=(":"+field.getName());
            }
            str+=":";
            for(String s : _nory_changes){
                str = str.replace(":"+s+":",":");
            }
            json = JSONObject.fromObject(bean,configJson(str.split(":")));
             
        }else{//转换除了_nory_changes里的属性
             
 
             
            json = JSONObject.fromObject(bean,configJson(_nory_changes));
        }
         
         
         
        returnjson.toString();
 
    }
     privatestatic JsonConfig configJson(String[] excludes) {  
 
                JsonConfig jsonConfig =new JsonConfig();  
 
                jsonConfig.setExcludes(excludes);  
//
                jsonConfig.setIgnoreDefaultExcludes(false);  
//
//              jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
 
//              jsonConfig.registerJsonValueProcessor(Date.class,  
//
//                  new DateJsonValueProcessor(datePattern));  
 
               
 
                returnjsonConfig;  
 
            
 
 
 
 
 
    /**
     * 将java对象List集合转换成json字符串 
     * @param beans
     * @return
     */
    @SuppressWarnings("unchecked")
    publicstatic String beanListToJson(List beans) {
         
        StringBuffer rest =new StringBuffer();
         
        rest.append("[");
         
        intsize = beans.size();
         
        for(int i = 0; i < size; i++) {
             
            rest.append(beanToJson(beans.get(i))+((i<size-1)?",":""));
 
        }
         
        rest.append("]");
         
        returnrest.toString();
 
    }
     
    /**
     *
     * @param beans
     * @param _no_changes
     * @return
     */
    @SuppressWarnings("unchecked")
    publicstatic String beanListToJson(List beans, String[] _nory_changes,boolean nory) {
         
        StringBuffer rest =new StringBuffer();
         
        rest.append("[");
         
        intsize = beans.size();
         
        for(int i = 0; i < size; i++) {
            try{
                rest.append(beanToJson(beans.get(i),_nory_changes,nory));
                if(i<size-1){
                    rest.append(",");
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
         
        rest.append("]");
         
        returnrest.toString();
 
    }
 
    /** 
     * 从json HASH表达式中获取一个map,改map支持嵌套功能 
     *
     * @param jsonString 
     * @return 
     */
    @SuppressWarnings({"unchecked" })
    publicstatic Map jsonToMap(String jsonString) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        Iterator keyIter = jsonObject.keys();
        String key;
        Object value;
        Map valueMap =new HashMap();
 
        while(keyIter.hasNext()) {
             
            key = (String) keyIter.next();
            value = jsonObject.get(key).toString();
            valueMap.put(key, value);
             
        }
 
        returnvalueMap;
    }
     
    /**
     * map集合转换成json格式数据
     * @param map
     * @return
     */
    publicstatic String mapToJson(Map<String, ?> map, String[] _nory_changes,boolean nory){
         
        String s_json ="{";
         
         Set<String> key = map.keySet();
         for(Iterator<?> it = key.iterator(); it.hasNext();) {
             String s = (String) it.next();
             if(map.get(s) ==null){
                  
             }elseif(map.get(s) instanceofList<?>){
                 s_json+=(s+":"+JsonPluginsUtil.beanListToJson((List<?>)map.get(s), _nory_changes, nory));
                 
             }else{
                 JSONObject json = JSONObject.fromObject(map);
                 s_json += (s+":"+json.toString());;
             }
              
             if(it.hasNext()){
                 s_json+=",";
             }
        }
 
         s_json+="}";
        returns_json;
    }
 
    /** 
     * 从json数组中得到相应java数组 
     *
     * @param jsonString 
     * @return 
     */
    publicstatic Object[] jsonToObjectArray(String jsonString) {
         
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
         
        returnjsonArray.toArray();
 
    }
     
    publicstatic String listToJson(List<?> list) {
         
        JSONArray jsonArray = JSONArray.fromObject(list);
         
        returnjsonArray.toString();
 
    }
 
    /** 
     * 从json对象集合表达式中得到一个java对象列表 
     *
     * @param jsonString 
     * @param beanClass 
     * @return 
     */
    @SuppressWarnings("unchecked")
    publicstatic <T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        JSONObject jsonObject;
        T bean;
        intsize = jsonArray.size();
        List<T> list =new ArrayList<T>(size);
 
        for(int i = 0; i < size; i++) {
 
            jsonObject = jsonArray.getJSONObject(i);
            bean = (T) JSONObject.toBean(jsonObject, beanClass);
            list.add(bean);
 
        }
         
        returnlist;
 
    }
 
    /** 
     * 从json数组中解析出java字符串数组 
     *
     * @param jsonString 
     * @return 
     */
    publicstatic String[] jsonToStringArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray =new String[jsonArray.size()];
        intsize = jsonArray.size();
 
        for(int i = 0; i < size; i++) {
 
            stringArray[i] = jsonArray.getString(i);
 
        }
 
        returnstringArray;
    }
 
    /** 
     * 从json数组中解析出javaLong型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    publicstatic Long[] jsonToLongArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        intsize = jsonArray.size();
        Long[] longArray =new Long[size];
         
        for(int i = 0; i < size; i++) {
             
            longArray[i] = jsonArray.getLong(i);
 
        }
         
        returnlongArray;
         
    }
 
    /** 
     * 从json数组中解析出java Integer型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    publicstatic Integer[] jsonToIntegerArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        intsize = jsonArray.size();
        Integer[] integerArray =new Integer[size];
         
        for(int i = 0; i < size; i++) {
             
            integerArray[i] = jsonArray.getInt(i);
 
        }
         
        returnintegerArray;
         
    }
 
    /** 
     * 从json数组中解析出java Double型对象数组 
     *
     * @param jsonString 
     * @return 
     */
    publicstatic Double[] jsonToDoubleArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        intsize = jsonArray.size();
        Double[] doubleArray =new Double[size];
         
        for(int i = 0; i < size; i++) {
             
            doubleArray[i] = jsonArray.getDouble(i);
 
        }
         
        returndoubleArray;
         
    }
 
}
0 0
原创粉丝点击