`

java中使用net.sf.json对json进行解析

    博客分类:
  • json
 
阅读更多

转自:http://zhangnet1.iteye.com/blog/765964

net.sf.json依赖的包很多。

有commons-collections,commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph-1.0.5.jar,morph-1.1.1.jar

    <span style="font-size: medium;">/**    
         * 从一个JSON 对象字符格式中得到一个java对象,形如:    
         * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}}    
         * @param object    
         * @param clazz    
         * @return    
         */     
        public static Object getDTO(String jsonString, Class clazz){      
            JSONObject jsonObject = null;      
            try{      
                setDataFormat2JAVA();       
                jsonObject = JSONObject.fromObject(jsonString);      
            }catch(Exception e){      
                e.printStackTrace();      
            }      
            return JSONObject.toBean(jsonObject, clazz);      
        }      
              
        /**    
         * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:    
         * {"id" : idValue, "name" : nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...},    
         * beansList:[{}, {}, ...]}    
         * @param jsonString    
         * @param clazz    
         * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : Bean.class)    
         * @return    
         */     
        public static Object getDTO(String jsonString, Class clazz, Map map){      
            JSONObject jsonObject = null;      
            try{      
                setDataFormat2JAVA();       
                jsonObject = JSONObject.fromObject(jsonString);      
            }catch(Exception e){      
                e.printStackTrace();      
            }      
            return JSONObject.toBean(jsonObject, clazz, map);      
        }      
              
        /**    
         * 从一个JSON数组得到一个java对象数组,形如:    
         * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]    
         * @param object    
         * @param clazz    
         * @return    
         */     
        public static Object[] getDTOArray(String jsonString, Class clazz){      
            setDataFormat2JAVA();      
            JSONArray array = JSONArray.fromObject(jsonString);      
            Object[] obj = new Object[array.size()];      
            for(int i = 0; i < array.size(); i++){      
                JSONObject jsonObject = array.getJSONObject(i);      
                obj[i] = JSONObject.toBean(jsonObject, clazz);      
            }      
            return obj;      
        }      
              
        /**    
         * 从一个JSON数组得到一个java对象数组,形如:    
         * [{"id" : idValue, "name" : nameValue}, {"id" : idValue, "name" : nameValue}, ...]    
         * @param object    
         * @param clazz    
         * @param map    
         * @return    
         */     
        public static Object[] getDTOArray(String jsonString, Class clazz, Map map){      
            setDataFormat2JAVA();      
            JSONArray array = JSONArray.fromObject(jsonString);      
            Object[] obj = new Object[array.size()];      
            for(int i = 0; i < array.size(); i++){      
                JSONObject jsonObject = array.getJSONObject(i);      
                obj[i] = JSONObject.toBean(jsonObject, clazz, map);      
            }      
            return obj;      
        }      
              
        /**    
         * 从一个JSON数组得到一个java对象集合    
         * @param object    
         * @param clazz    
         * @return    
         */     
        public static List getDTOList(String jsonString, Class clazz){      
            setDataFormat2JAVA();      
            JSONArray array = JSONArray.fromObject(jsonString);      
            List list = new ArrayList();      
            for(Iterator iter = array.iterator(); iter.hasNext();){      
                JSONObject jsonObject = (JSONObject)iter.next();      
                list.add(JSONObject.toBean(jsonObject, clazz));      
            }      
            return list;      
        }      
              
        /**    
         * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性    
         * @param object    
         * @param clazz    
         * @param map 集合属性的类型    
         * @return    
         */     
        public static List getDTOList(String jsonString, Class clazz, Map map){      
            setDataFormat2JAVA();      
            JSONArray array = JSONArray.fromObject(jsonString);      
            List list = new ArrayList();      
            for(Iterator iter = array.iterator(); iter.hasNext();){      
                JSONObject jsonObject = (JSONObject)iter.next();      
                list.add(JSONObject.toBean(jsonObject, clazz, map));      
            }      
            return list;      
        }      
              
        /**    
         * 从json HASH表达式中获取一个map,该map支持嵌套功能    
         * 形如:{"id" : "johncon", "name" : "小强"}    
         * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap    
         * @param object    
         * @return    
         */     
        public static Map getMapFromJson(String jsonString) {      
            setDataFormat2JAVA();      
            JSONObject jsonObject = JSONObject.fromObject(jsonString);      
            Map map = new HashMap();      
            for(Iterator iter = jsonObject.keys(); iter.hasNext();){      
                String key = (String)iter.next();      
                map.put(key, jsonObject.get(key));      
            }      
            return map;      
        }      
              
        /**    
         * 从json数组中得到相应java数组    
         * json形如:["123", "456"]    
         * @param jsonString    
         * @return    
         */     
        public static Object[] getObjectArrayFromJson(String jsonString) {      
            JSONArray jsonArray = JSONArray.fromObject(jsonString);      
            return jsonArray.toArray();      
        }      
         
         
        /**    
         * 把数据对象转换成json字符串    
         * DTO对象形如:{"id" : idValue, "name" : nameValue, ...}    
         * 数组对象形如:[{}, {}, {}, ...]    
         * map对象形如:{key1 : {"id" : idValue, "name" : nameValue, ...}, key2 : {}, ...}    
         * @param object    
         * @return    
         */     
        public static String getJSONString(Object object) throws Exception{      
            String jsonString = null;      
            //日期值处理器      
            JsonConfig jsonConfig = new JsonConfig();      
            jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());      
            if(object != null){      
                if(object instanceof Collection || object instanceof Object[]){      
                    jsonString = JSONArray.fromObject(object, jsonConfig).toString();      
                }else{      
                    jsonString = JSONObject.fromObject(object, jsonConfig).toString();      
                }      
            }      
            return jsonString == null ? "{}" : jsonString;      
        }    </span>  
 

 

分享到:
评论

相关推荐

    Java中使用Json的net.sf.json包

    为了在Java中处理JSON数据,开发者通常会使用特定的库,如`net.sf.json`包,这是一个非常实用的JSON库,提供了丰富的功能来创建、解析和操作JSON对象。 `net.sf.json`库主要包含了两个核心类:`JSONObject`和`...

    JSON net.sf.json jar包

    `net.sf.json`是开源项目Apache软件基金会下的一个Java库,它提供了对JSON的支持,包括将Java对象转换为JSON格式以及将JSON字符串反序列化回Java对象的功能。 `net.sf.json`库主要包含以下功能点: 1. **JSON与...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    在Java开发中,数据交换和存储常常涉及到JSON...以上就是使用`net.sf.json.JSONObject`进行JSON操作的基本步骤和进阶技巧。在实际开发中,你可能还需要结合其他工具,如Gson或Jackson,根据项目需求选择合适的JSON库。

    JSON(net.sf.json.JSONArray)需要的jar包

    在标题中提到的"JSON(net.sf.json.JSONArray)需要的jar包",是指为了在Java项目中使用`net.sf.json.JSONArray`以及相关的JSON类,你需要引入特定的jar包。`net.sf.json.JSONArray`是开源项目Apache licensed Json-...

    net.sf.json需要的jar

    标题中的"net.sf.json需要的jar"指的是在Java开发中使用net.sf.json库时所需的依赖JAR文件。net.sf.json是开源项目,它提供了一系列的API来处理JSON(JavaScript Object Notation)数据格式,便于Java应用程序与JSON...

    net.sf.json依赖包

    在Java开发中,`net.sf.json` 库提供了一系列API,使得开发者能够方便地将Java对象转换为JSON字符串,以及将JSON字符串解析回Java对象。 `net.sf.json` 库包含了以下关键功能: 1. **JSON与Java对象的转换**:通过...

    net.sf.json2.4

    标题“net.sf.json2.4”指的是一个特定版本的JSON库,它是在Java环境中处理JSON数据的一个工具包。这个库的主要功能是帮助开发者在Java应用程序中生成和解析JSON(JavaScript Object Notation)字符串,这是一种轻量...

    net.sf.json.JSONObject相关jar包.zip

    通过这个JAR包,开发者能够在Java程序中方便地将JSON字符串解析成Java对象,或者将Java对象转换为JSON字符串,从而实现与JSON数据的交互。 标签 "jar" 表明这是一个Java Archive文件,是Java平台的标准归档格式,...

    net.sf.json.JSONObject依赖jar

    标题中的"net.sf.json.JSONObject依赖jar"指的是为了在Java项目中使用net.sf.json.JSONObject类,你需要引入特定的jar依赖包。这个包包含了所有必要的类和方法,使得你可以方便地处理JSON数据。一旦将这个依赖包导入...

    json net.sf.json

    1. **JSON解析与生成**:`net.sf.json`库提供了`JSONObject`和`JSONArray`类,它们分别对应JSON的Object和Array类型。你可以通过这些类的方法来创建、读取和修改JSON数据。例如,`JSONObject.fromObject()`可以将...

    net.sf.json.JsonObject需要的jar包

    `net.sf.json.JSONObject` 是json-lib中的核心类,它允许你将Java对象转换为JSON表示,并反之将JSON字符串解析为Java对象。这极大地简化了数据的序列化和反序列化过程。例如,你可以将一个HashMap转换为JSON对象,...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    `net.sf.json.JSONObject`是开源库Apache Commons Lang中的一个类,它提供了解决Java对象与JSON字符串之间转换的功能。这篇博客文章"net.sf.json.JSONObject实现Object对象与Json字符串的互转"深入探讨了如何使用`...

    net.sf.json.JSONObject Jar包下载

    无论你需要解析接收到的JSON字符串,还是需要将Java对象转化为JSON格式发送出去,"net.sf.json.JSONObject"都提供了强大的工具。 为了使用这个Jar包,你需要将其添加到项目的类路径中。如果你使用的是Maven,可以在...

    net.sf.json.JSONObject 依赖的包

    `net.sf.json.JSONObject` 是一个广泛使用的开源JSON库,它为Java开发者提供了处理JSON对象的能力。这个库在很多项目中被用作与JSON数据交互的工具,尤其在那些不使用现代Java版本(如Java 8及以上)或者不依赖更...

    net.sf.json jar包 net.sf.json jar包 最全版

    JAVA中使用JSON进行数据传递,用于java生成json字符串,和java解析json字符串(如果要使程序可以运行的话必须引入JSON-lib包,而JSON-lib包是一个beans,collections,maps,java arrays和XML和JSON互相转换的包)

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `net.sf.json.JSONObject`。这两个库分别是阿里巴巴的Fastjson和Eclipse的Json-lib。 首先,我们来详细了解一下`...

    net.sf.json.JSONObject依赖库.zip

    `net.sf.json`库提供了对JSON(JavaScript Object Notation)数据格式的支持,允许Java对象与JSON格式之间进行互转。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 `...

    net.sf.json jar包

    net.sf.json jar包含以下:  commons-lang.jar  commons-beanutils.jar  commons-collections.jar  commons-logging.jar  ezmorph.jar  json-lib-2.2.2-jdk15.jar

    net.sf.json

    ### JSON解析 1. **解析JSON字符串**: 使用`JSONObject.fromJSONString()`或`JSONArray.fromJSONString()`将JSON字符串转化为相应的JSON对象: ```java String jsonString = "{\"name\":\"John\", \"age\":30}"; ...

Global site tag (gtag.js) - Google Analytics