`

Json与javaBean之间的转换工具类

    博客分类:
  • Java
 
阅读更多
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之间的转换工具类

 * 
 * {@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")
    public static <T> T jsonToBean(String jsonString, Class<T> beanCalss) {
         
        JSONObject jsonObject = JSONObject.fromObject(jsonString);
        T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
         
        return bean;
         
    }
 
    /**  
     * 将java对象转换成json字符串  
     *
     * @param bean  
     * @return  
     */
    public static String beanToJson(Object bean) {
 
        JSONObject json = JSONObject.fromObject(bean);
         
        return json.toString();
 
    }
     
    /**  
     * 将java对象转换成json字符串  
     *
     * @param bean  
     * @return  
     */
    public static 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));
        }
         
         
         
        return json.toString();
 
    }
     private static 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));   
 
               
 
                return jsonConfig;   
 
            }  
 
 
 
 
 
    /**
     * 将java对象List集合转换成json字符串  
     * @param beans
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String beanListToJson(List beans) {
         
        StringBuffer rest = new StringBuffer();
         
        rest.append("[");
         
        int size = beans.size();
         
        for (int i = 0; i < size; i++) {
             
            rest.append(beanToJson(beans.get(i))+((i<size-1)?",":""));
 
        }
         
        rest.append("]");
         
        return rest.toString();
 
    }
     
    /**
     * 
     * @param beans
     * @param _no_changes
     * @return
     */
    @SuppressWarnings("unchecked")
    public static String beanListToJson(List beans, String[] _nory_changes, boolean nory) {
         
        StringBuffer rest = new StringBuffer();
         
        rest.append("[");
         
        int size = 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("]");
         
        return rest.toString();
 
    }
 
    /**  
     * 从json HASH表达式中获取一个map,改map支持嵌套功能  
     *
     * @param jsonString  
     * @return  
     */
    @SuppressWarnings({ "unchecked" })
    public static 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);
             
        }
 
        return valueMap;
    }
     
    /**
     * map集合转换成json格式数据
     * @param map
     * @return
     */
    public static 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){
                  
             }else if(map.get(s) instanceof List<?>){
                 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+="}";
        return s_json; 
    }
 
    /**  
     * 从json数组中得到相应java数组  
     *
     * @param jsonString  
     * @return  
     */
    public static Object[] jsonToObjectArray(String jsonString) {
         
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
         
        return jsonArray.toArray();
 
    }
     
    public static String listToJson(List<?> list) {
         
        JSONArray jsonArray = JSONArray.fromObject(list);
         
        return jsonArray.toString();
 
    }
 
    /**  
     * 从json对象集合表达式中得到一个java对象列表  
     *
     * @param jsonString  
     * @param beanClass  
     * @return  
     */
    @SuppressWarnings("unchecked")
    public static <T> List<T> jsonToBeanList(String jsonString, Class<T> beanClass) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        JSONObject jsonObject;
        T bean;
        int size = 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);
 
        }
         
        return list;
 
    }
 
    /**  
     * 从json数组中解析出java字符串数组  
     *
     * @param jsonString  
     * @return  
     */
    public static String[] jsonToStringArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray = new String[jsonArray.size()];
        int size = jsonArray.size();
 
        for (int i = 0; i < size; i++) {
 
            stringArray[i] = jsonArray.getString(i);
 
        }
 
        return stringArray;
    }
 
    /**  
     * 从json数组中解析出javaLong型对象数组  
     *
     * @param jsonString  
     * @return  
     */
    public static Long[] jsonToLongArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Long[] longArray = new Long[size];
         
        for (int i = 0; i < size; i++) {
             
            longArray[i] = jsonArray.getLong(i);
 
        }
         
        return longArray;
         
    }
 
    /**  
     * 从json数组中解析出java Integer型对象数组  
     *
     * @param jsonString  
     * @return  
     */
    public static Integer[] jsonToIntegerArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Integer[] integerArray = new Integer[size];
         
        for (int i = 0; i < size; i++) {
             
            integerArray[i] = jsonArray.getInt(i);
 
        }
         
        return integerArray;
         
    }
 
    /**  
     * 从json数组中解析出java Double型对象数组  
     *
     * @param jsonString  
     * @return  
     */
    public static Double[] jsonToDoubleArray(String jsonString) {
 
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        int size = jsonArray.size();
        Double[] doubleArray = new Double[size];
         
        for (int i = 0; i < size; i++) {
             
            doubleArray[i] = jsonArray.getDouble(i);
 
        }
         
        return doubleArray;
         
    }
 
}

转载自:http://www.oschina.net/code/snippet_931591_17607
分享到:
评论

相关推荐

    Json一键转Javabean工具

    "Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...

    json自动生成javabean的工具jar

    针对这个需求,有一些工具可以自动将JSON转换为对应的JavaBean类,大大提高了开发效率。 标题中的“json自动生成javabean的工具jar”是指一个Java的库或者工具,它以JAR(Java Archive)文件形式提供,功能是将JSON...

    json2javabean josnschema2pojo

    JSON到Java Bean转换工具,如"json2javabean"和"josnschema2pojo",是开发人员在处理JSON数据与Java对象之间转换时的便利工具。这些工具能够根据JSON格式的数据自动生成对应的Java类,使得数据绑定变得更加简单和...

    Json转JavaBean小工具

    json转javabean的一个工具,只要输入类名和合法的json格式就会在当前文件夹下生成java文档,操作时图形界面的,纯java编写可以跨平台操作。

    json一键生成javabean工具

    "json一键生成javabean工具"是一款实用的开发辅助工具,它能够快速地根据JSON格式的数据自动生成对应的JavaBean类。这极大地节省了开发者手动编写JavaBean的时间,提高了开发效率。该工具的主要功能包括: 1. **...

    json一键转javabean工具

    "json一键转javabean工具"是一个非常实用的开发辅助工具,它的主要功能是将JSON格式的数据自动转换为对应的JavaBean类,大大节省了开发者手动编写Java类的时间,提高了开发效率。这个工具可能包含以下特性: 1. **...

    json转javabean js工具

    我们开发的java系统,经常需要调用其他系统的API。这些API的返回格式,往往都是json格式。这个小工具,可以帮助你把json格式的数据,转换成对应的javabean。以简化你手动拷贝粘贴json属性的工作。

    JAVA-JSON工具转换类

    总的来说,`JAVA-JSON工具转换类`这个主题涵盖了JSON数据处理的核心部分,包括JSON的序列化和反序列化,以及数据类型的转换。通过`json-lib`和`ezmorph`这两个库,开发者可以轻松地在Java程序中处理JSON数据,而`...

    批量转换json到java类工具

    将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...

    json转换JavaBean

    总结,Java中将JSON转换为JavaBean主要有手动解析、使用Gson、Jackson、Fastjson等库以及自定义工具类等多种方式。选择哪种方式取决于项目需求、性能要求以及团队的熟悉程度。在实际开发中,应根据具体情况选择最...

    json自动生成javabean_JavaEnityTools.jar.rar

    "json自动生成javabean_JavaEnityTools.jar" 是一个工具包,专门用于将JSON格式的数据自动转化为符合JavaBean规范的Java类。这个工具通常包含解析JSON字符串或文件的功能,并能根据JSON结构生成对应的Java源代码。这...

    jackson操作json和javabean示例

    在这个名为"jackson操作json和javabean示例"的项目中,我们将深入探讨Jackson库的核心功能,特别是其流式API、工具类以及树型模型的使用。 1. **Jackson流式API**:流式API(Streaming API)是Jackson提供的低级别...

    json、javaBean、xml互转的几种工具介绍

    在IT行业中,数据交换和序列化是至关重要的环节,json、JavaBean和XML作为常见的数据表示格式,它们之间的转换需求频繁出现。这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 ...

    JSON转JAVA & C# 转换工具.rar

    标题“JSON转JAVA & C# 转换工具.rar”指的是一个包含两个不同语言环境下的JSON转换工具的压缩包,目的是帮助开发者快速地将JSON格式的数据转换为对应的Java或C#实体类。 描述中提到的“绝对好用的工具”,暗示了这...

    json与bean的转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于服务器与客户端之间的数据传输。它以文本形式存储和传递数据,易于人阅读和编写,同时也容易让机器解析和生成。在Java中,我们经常需要将JSON...

    首字母大写的json串转为javabean实例

    5. **使用工具类或方法**:可以创建一个静态方法或者工具类,接收JSON字符串和JavaBean的Class类型作为参数,内部实现转换逻辑,这样在项目中可以复用。 6. **代码示例**:对于Gson库,可以创建一个自定义`...

    java_android_javaBean json转换工具类的标准代码

    一些工具类代码块的标准代码,包括但不限于: javaBean、列表数组转换为json字符串 ...与javaBean json数组字符串转换为列表 获取泛型的Collection Type map 转JavaBean map 转json map 转JavaBean

    XStream在JavaBean与XML/JSON 之间相互转换

    **XStream:JavaBean与XML/JSON之间的转换大师** XStream是一个开源库,它为Java对象提供了简单且直观的XML序列化和反序列化的解决方案。它不仅能够将Java对象转换成XML,反之亦然,还能支持JSON格式的转换。这个...

    json转换工具

    这些库的组合使用,可以构建一个强大的JSON处理工具,不仅能够方便地进行JSON与Java对象之间的转换,还支持数据的序列化和反序列化,以及丰富的数据操作。例如,你可以使用BeanUtils将Java对象的属性映射到JSON对象...

    json转Map,转javaBean,javBean和Map转json

    在Java开发中,JSON(JavaScript Object ...通过这样的工具类,我们可以简化JSON、Map和JavaBean之间的转换过程,提高代码的可读性和可维护性。在实际开发中,了解并熟练掌握这些转换方法对于处理数据交互至关重要。

Global site tag (gtag.js) - Google Analytics