`

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 工具类java json 工具类

    java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类

    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 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和...

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

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

    excel 转java 以及JSON工具类

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

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

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

    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字符串的...

Global site tag (gtag.js) - Google Analytics