`

Java操作Json的工具类

    博客分类:
  • Json
阅读更多

package com.baiyyy.polabs.util.json;        
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
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 net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
       
/**     
* 处理json的工具类,负责json数据转换成java对象和java对象转换成json     
*      
* @author yongtree     
* @date 2008-11-22 上午10:47:13     
* @version 1.0     
*/       
public class JsonUtil {        
       
    /**     
     * 从一个JSON 对象字符格式中得到一个java对象     
     *      
     * @param jsonString     
     * @param pojoCalss     
     * @return     
     */       
    public static Object  getObject4JsonString(String jsonString, Class pojoCalss) {        
        Object pojo;        
        JSONObject jsonObject = JSONObject.fromObject(jsonString);        
        pojo = JSONObject.toBean(jsonObject, pojoCalss);        
        return pojo;        
    }        
       
       
    /**     
     * 从json HASH表达式中获取一个map,改map支持嵌套功能     
     *      
     * @param jsonString     
     * @return     
     */       
    public static Map getMap4Json(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);        
            valueMap.put(key, value);        
        }        
       
        return valueMap;        
    }        
       
       
    /**     
     * 从json数组中得到相应java数组     
     *      
     * @param jsonString     
     * @return     
     */       
    public static Object[] getObjectArray4Json(String jsonString) {        
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        return jsonArray.toArray();        
       
    }        
       
       
    /**     
     * 从json对象集合表达式中得到一个java对象列表     
     *      
     * @param jsonString     
     * @param pojoClass     
     * @return     
     */       
    public static List getList4Json(String jsonString, Class pojoClass) {        
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        JSONObject jsonObject;        
        Object pojoValue;        
       
        List list = new ArrayList();        
        for (int i = 0; i < jsonArray.size(); i++) {        
       
            jsonObject = jsonArray.getJSONObject(i);        
            pojoValue = JSONObject.toBean(jsonObject, pojoClass);        
            list.add(pojoValue);        
       
        }        
        return list;        
       
    }        
       
       
    /**     
     * 从json数组中解析出java字符串数组     
     *      
     * @param jsonString     
     * @return     
     */       
    public static String[] getStringArray4Json(String jsonString) {        
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        String[] stringArray = new String[jsonArray.size()];        
        for (int i = 0; i < jsonArray.size(); i++) {        
            stringArray[i] = jsonArray.getString(i);        
       
        }        
       
        return stringArray;        
    }        
       
       
    /**     
     * 从json数组中解析出javaLong型对象数组     
     *      
     * @param jsonString     
     * @return     
     */       
    public static Long[] getLongArray4Json(String jsonString) {        
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        Long[] longArray = new Long[jsonArray.size()];        
        for (int i = 0; i < jsonArray.size(); i++) {        
            longArray[i] = jsonArray.getLong(i);        
       
        }        
        return longArray;        
    }        
       
       
    /**     
     * 从json数组中解析出java Integer型对象数组     
     *      
     * @param jsonString     
     * @return     
     */       
    public static Integer[] getIntegerArray4Json(String jsonString) {        
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        Integer[] integerArray = new Integer[jsonArray.size()];        
        for (int i = 0; i < jsonArray.size(); i++) {        
            integerArray[i] = jsonArray.getInt(i);        
       
        }        
        return integerArray;        
    }        
       
    /**     
     * 从json数组中解析出java Date 型对象数组,使用本方法必须保证     
     *      
     * @param jsonString     
     * @return     
     * @throws ParseException     
     */       
    public static Date[] getDateArray4Json(String jsonString, String DataFormat)        
            throws ParseException {        
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        Date[] dateArray = new Date[jsonArray.size()];        
        String dateString;        
        Date date;        
       
        for (int i = 0; i < jsonArray.size(); i++) {        
            dateString = jsonArray.getString(i);        
            date = DateUtil.parseDate(dateString, DataFormat);        
            dateArray[i] = date;        
       
        }        
        return dateArray;        
    }        
       
       
    /**     
     * 从json数组中解析出java Integer型对象数组     
     *      
     * @param jsonString     
     * @return     
     */       
    public static Double[] getDoubleArray4Json(String jsonString) {        
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);        
        Double[] doubleArray = new Double[jsonArray.size()];        
        for (int i = 0; i < jsonArray.size(); i++) {        
            doubleArray[i] = jsonArray.getDouble(i);        
       
        }        
        return doubleArray;        
    }        
       
       
    /**     
     * 将java对象转换成json字符串     
     *      
     * @param javaObj     
     * @return     
     */       
    public static String getJsonString4JavaPOJO(Object javaObj) {        
       
        JSONObject json;        
        json = JSONObject.fromObject(javaObj);        
        return json.toString();        
       
    }        
       
    /**     
     * 将java对象转换成json字符串,并设定日期格式     
     *      
     * @param javaObj     
     * @param dataFormat     
     * @return     
     */       
    public static String getJsonString4JavaPOJO(Object javaObj,        
            String dataFormat) {        
       
        JSONObject json;        
        JsonConfig jsonConfig = configJson(dataFormat);        
        json = JSONObject.fromObject(javaObj, jsonConfig);        
        return json.toString();        
       
    }        
       
    /**     
     * JSON 时间解析器具     
     *      
     * @param datePattern     
     * @return     
     */       
    public static JsonConfig configJson(String datePattern) {        
        JsonConfig jsonConfig = new JsonConfig();        
        jsonConfig.setExcludes(new String[] { "" });        
        jsonConfig.setIgnoreDefaultExcludes(false);        
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);        
        jsonConfig.registerJsonValueProcessor(Date.class,        
                new JsonDateValueProcessor(datePattern));        
       
        return jsonConfig;        
    }        
       
       
    /**     
     * 除去不想生成的字段(特别适合去掉级联的对象)+时间转换     
     * @param excludes 除去不想生成的字段     
     * @param datePattern     
     * @return     
     */       
    public static JsonConfig configJson(String[] excludes, String datePattern) {        
        JsonConfig jsonConfig = new JsonConfig();        
        jsonConfig.setExcludes(excludes);        
        jsonConfig.setIgnoreDefaultExcludes(true);        
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);        
        jsonConfig.registerJsonValueProcessor(Date.class,        
                new JsonDateValueProcessor(datePattern));        
       
        return jsonConfig;        
    }        
       
}   

*******************************************************************************************
日期转换
*******************************************************************************************

package com.baiyyy.polabs.util.json;        
       
import java.text.SimpleDateFormat;        
import java.util.Date;        
       
import net.sf.json.JsonConfig;        
import net.sf.json.processors.JsonValueProcessor;        
       
/**     
*      
* @author yongtree     
* @date 2008-11-22 上午10:54:19     
* @version 1.0     
*/       
public class JsonDateValueProcessor implements JsonValueProcessor {           
              
    private String format = "yyyy-MM-dd HH:mm:ss";           
          
    public JsonDateValueProcessor() {           
          
    }           
          
    public JsonDateValueProcessor(String format) {           
        this.format = format;           
    }           
          
    public Object processArrayValue(Object value, JsonConfig jsonConfig) {           
        String[] obj = {};           
        if (value instanceof Date[]) {           
            SimpleDateFormat sf = new SimpleDateFormat(format);           
            Date[] dates = (Date[]) value;           
            obj = new String[dates.length];           
            for (int i = 0; i < dates.length; i++) {           
                obj[i] = sf.format(dates[i]);           
            }           
        }           
        return obj;           
    }            [color=green]

          
    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {           
        if (value instanceof Date) {           
            String str = new SimpleDateFormat(format).format((Date) value);           
            return str;           
        }           
        return value == null ? null : value.toString();           
    }           
          
    public String getFormat() {           
        return format;           
    }           
          
    public void setFormat(String format) {           
        this.format = format;           
    }           
          
}       
[/color]


分享到:
评论

相关推荐

    JAVA-JSON工具转换类

    `JsonUtil.java`看起来是一个自定义的工具类,很可能包含了对`json-lib`和`ezmorph`的封装,提供了简洁易用的API供开发者进行JSON操作。可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`...

    java服务端json工具类

    java服务器用的json工具类,自己封装的,支持beanToJson ListToJson arrayToJson等

    java的xml和json相互转换工具类,亲测直接用

    本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...

    java的xml和json相互转换工具类,直接用

    实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~

    excel 转java 以及JSON工具类

    "Excel转Java以及JSON工具类"提供了一种便捷的方式来管理和转化结构化的数据。这种工具通常用于将Excel表格中的数据转换为Java对象或者JSON格式,方便在编程环境中进行操作和使用。 Excel是一种广泛使用的电子表格...

    JAVA转JSON工具类说明

    java转JSON工具类说明,以后看着函数说明就自己可以随便使用JSON数据了,

    Java json工具类,jackson工具类,ObjectMapper工具类

    总结来说,`Java json工具类`如`Jackson`和`ObjectMapper`,以及开发者自定义的`JacksonUtils`工具类,是Java开发中处理JSON数据的关键工具。它们能够方便地将Java对象和JSON格式数据互相转换,同时提供了一系列高级...

    Java中使用JSON格式数据工具类及使用说明

    本资源“Java中使用JSON格式数据工具类及使用说明”提供了关于如何在Java中处理JSON数据的方法,包括将JSON数据转化为Java对象以及对特殊数据类型的处理,特别是时间格式化。以下是关于这些知识点的详细说明: 1. *...

    java解析dxf文件返回json工具类

    java解析dxf文件返回json工具类

    json工具类,java日期转换,字符串转换等各种工具类

    1. **JSON工具类**: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们通常使用`org.json`库或`com.google.gson`库来处理JSON数据。...

    JAVA操作JSON全套包,无需另外下载一次搞定

    3. **commons-lang-2.4.jar**:Apache Commons Lang是Apache软件基金会提供的一个Java工具包,包含一系列实用的工具类,用于补充Java语言功能。在处理JSON时,可能会用到字符串处理、日期时间操作等,这些功能在这个...

    java操作json的通用类

    在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...在实际项目中,这样的工具类和处理器对于处理JSON数据至关重要,它们使得在Java应用中与其他系统进行数据交换变得更加便捷和可靠。

    java json工具类

    java json工具类,支持各种json对象,json数组与json字符串转换,json格式校验等。

    很好用的JAVA类转JSON工具:FastJSON.doc

    FastJSON 是一个 Java 类转 JSON 工具,具有简洁、快速和高效的特点,能够轻松将 Java 对象转换为 JSON 字符串,并且支持反向操作。 FastJSON 的主要特点是速度快、配置简单,只需一行代码即可将 Java 对象转换为 ...

    java对象转json工具类

    ### Java对象转JSON工具类详解 #### 一、引言 在现代软件开发过程中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。它基于JavaScript的一个子集,采用完全独立于编程语言的文本...

    java中操作json字符串的工具类

    - commons-beanutils-1.8.0.jar - commons-collections-3.1.jar - commons-lang-2.5.jar - commons-logging-1.2.jar - ezmorph-1.0.6.jar - json-lib-2.4-jdk15.jar

    Json处理工具类

    ### Json处理工具类知识点 #### 一、简介 在Java编程中,经常需要对JSON数据进行解析、构建或转换等操作。为此,本知识点将基于提供的文件内容介绍一个实用的`JsonHandle`类,该类封装了多个用于处理JSON字符串的...

    JSON工具类jar包

    Java处理JSON的全套工具类,依赖于以下的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar

    java读取json的jar包

    在这里,`User`是一个包含`name`、`age`和`city`属性的Java类。`ObjectMapper`的`readValue`方法将JSON字符串转化为`User`对象。 另一个流行的库是Gson,它是Google提供的JSON库。使用Gson,同样可以方便地进行序列...

Global site tag (gtag.js) - Google Analytics