`

JsonUtils工具类

    博客分类:
  • java
阅读更多
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class JsonUtils
{
    /** Commons Logging instance. */
    private static org.apache.commons.logging.Log log =
        org.apache.commons.logging.LogFactory.getLog(JsonUtils.class);
    /**
     * @param obj 任意对象
     * @return String
     */
    public static String object2json(Object obj) {
        StringBuilder json = new StringBuilder();
        if (obj == null) {
            json.append("\"\"");
        } else if (obj instanceof String || obj instanceof Integer || obj instanceof Float 
                || obj instanceof Boolean || obj instanceof Short || obj instanceof Double 
                || obj instanceof Long || obj instanceof BigDecimal
                || obj instanceof BigInteger || obj instanceof Byte) {
            json.append("\"").append(string2json(obj.toString())).append("\"");
        } else if (obj instanceof Object[]) {
            json.append(array2json((Object[]) obj));
        } else if (obj instanceof List) {
            json.append(list2json((List<?>) obj));
        } else if (obj instanceof Map) {
            json.append(map2json((Map<?, ?>) obj));
        } else if (obj instanceof Set) {
            json.append(set2json((Set<?>) obj));
        } else {
            json.append(bean2json(obj));
        }
        return json.toString();
    }
    /**
     * @param bean bean对象
     * @return String
     */
    public static String bean2json(Object bean) {
        StringBuilder json = new StringBuilder();
        json.append("{");
        PropertyDescriptor[] props = null;
        try {
            props = Introspector.getBeanInfo
                (bean.getClass(), Object.class).getPropertyDescriptors();
        } catch (IntrospectionException e) {
            e.printStackTrace();
        }
        if (props != null) {
            for (int i = 0; i < props.length; i++) {
                try {
                    String name = object2json(props[i].getName());
                    String value = object2json(props[i].getReadMethod().invoke(bean));
                    json.append(name);
                    json.append(":");
                    json.append(value);
                    json.append(",");
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            json.setCharAt(json.length() - 1, '}');
        } else {
            json.append("}");
        }
        return json.toString();
    }
    /**
     * @param list list对象
     * @return String
     */
    public static String list2json(List<?> list) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (list != null && list.size() > 0) {
            for (Object obj : list) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }
    /**
     * @param array 对象数组
     * @return String
     */
    public static String array2json(Object[] array) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (array != null && array.length > 0) {
            for (Object obj : array) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }
    /**
     * @param map map对象
     * @return String
     */
    public static String map2json(Map<?, ?> map) {
        StringBuilder json = new StringBuilder();
        json.append("{");
        if (map != null && map.size() > 0) {
            for (Object key : map.keySet()) {
                json.append(object2json(key));
                json.append(":");
                json.append(object2json(map.get(key)));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, '}');
        } else {
            json.append("}");
        }
        return json.toString();
    }
    /**
     * @param set 集合对象
     * @return String
     */
    public static String set2json(Set<?> set) {
        StringBuilder json = new StringBuilder();
        json.append("[");
        if (set != null && set.size() > 0) {
            for (Object obj : set) {
                json.append(object2json(obj));
                json.append(",");
            }
            json.setCharAt(json.length() - 1, ']');
        } else {
            json.append("]");
        }
        return json.toString();
    }
    /**
     * @param s 参数
     * @return String
     */
    public static String string2json(String s) {
        if (null == s){
            return "";
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            switch (ch) {
            case '"':
                sb.append("\\\"");
                break;
            case '\\':
                sb.append("\\\\");
                break;
            case '\b':
                sb.append("\\b");
                break;
            case '\f':
                sb.append("\\f");
                break;
            case '\n':
                sb.append("\\n");
                break;
            case '\r':
                sb.append("\\r");
                break;
            case '\t':
                sb.append("\\t");
                break;
            case '/':
                sb.append("\\/");
                break;
            default:
                if (ch >= '\u0000' && ch <= '\u001F') {
                    String ss = Integer.toHexString(ch);
                    sb.append("\\u");
                    for (int k = 0; k < 4 - ss.length(); k++) {
                        sb.append('0');
                    }
                    sb.append(ss.toUpperCase());
                } else {
                    sb.append(ch);
                }
            }
        }
        return sb.toString();
    }
} 

 

分享到:
评论

相关推荐

    JSONUtils工具类

    JSONUtils工具类

    json-lib JsonUtils 工具类,json-lib 工具类

    本文将详细讲解`JsonUtils`工具类在`json-lib`中的使用方法及其相关知识点。 `JsonUtils`是`json-lib`库中的核心工具类,它提供了多种方便的方法,用于Java对象与JSON字符串之间的转换。以下是一些关键功能: 1. *...

    Gson工具类JsonUtils

    5. **SLF4J的引用**:slf4j.7z文件可能包含了SLF4J(Simple Logging Facade for Java)的日志框架,JsonUtils工具类在运行时可能使用SLF4J进行日志记录,以便调试和追踪转换过程中的问题。例如: ```java import org...

    jsonutils json工具类

    json数据处理类 将List对象序列化为JSON文本 将对象序列化为JSON文本 将JSON对象数组序列化为JSON文本 将对象转换为List对象 将对象转换为Collection对象 将对象转换为JSON对象数组 将对象转换为JSON对象 将对象...

    IT专家在JAVA中封装JSONUtils工具类及使用 (转).docx

    为了方便地处理JSON数据,开发者通常会封装一个工具类,如本例中的`JSONUtils`。这个工具类包含了一系列静态方法,帮助我们将Java对象与JSON格式之间进行转换。下面是对`JSONUtils`工具类中主要方法的详细解释: 1....

    JsonUtils.zip

    在这个场景中,我们关注的是一个名为"JsonUtils"的自定义工具类,它提供了几个便捷的方法来简化这个过程。 `JsonUtils`工具类主要包含三个方法: 1. `objectToJson`: 这个方法用于将Java对象转换成JSON格式的字符...

    json-utils最新代码

    json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码json-utils最新代码...

    JSONUtils json工具类

    json2bean json2xml json2list json2map

    android 常用工具类

    JSONUtils工具类,可用于方便的向Json中读取和写入相关类型数据,如: String getString(JSONObject jsonObject, String key, String defaultValue) 得到string类型value String getString(String jsonData, ...

    JsonUtils(Json转换工具类)

    《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...

    Android静默安装常用工具类

    JSONUtils工具类,可用于方便的向Json中读取和写入相关类型数据,如: String getString(JSONObject jsonObject, String key, String defaultValue) 得到string类型value String getString(String jsonData, String ...

    JsonUtils JSON工具类

    很好用的JSON转换工具类 1、将对象转换成json字符串 2、将json结果集转化为对象 3、将json数据转换成pojo对象list

    Java开发工具类

    Class类工具 \Cookie工具类 \excel读取 工具类\Java如何生成验证码图片和点击刷新验证码\java获取当前月第一天和最后一天,上个月第一天和最后一天\java实现ftp文件的上传与下载\Json工具类 - JsonUtils.java\JS...

    Java工具类CookieUtils、IdWorker、JsonUtils、NumberUtils

    工具类CookieUtils、IdWorker、JsonUtils、NumberUtils Java工具类

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\014 json\JsonUtils.java D:\002 我的工具类\015 cookie D:\002 我的工具类\015 cookie\CookieUtils.java D:\002 我的工具类\016 FtpUtil D:\002 我的工具类\016 FtpUtil\FtpUtil.java D:\002 我...

    json-utils:Json工具类, 包含Gson、FastJson、Jackson三个库的工具类,其中Jackson支持Scala版本

    json-utils Json工具类,包含Gson,FastJson,Jackson三个库的工具类,其中Jackson支持Scala版本Maven依赖: &lt; dependencies&gt;&lt; dependency&gt; &lt; groupId&gt;...

    Android 封装的工具类

    6. **JSON解析工具类(JsonUtils.java)** JSON是网络数据交换的主要格式,`JsonUtils`通常封装了Gson或Jackson库,用于将JSON字符串转换为Java对象,或者将Java对象转换为JSON字符串。这样可以方便地在Android应用...

    最新版工具类

    4. **JSON解析工具类**:如`JsonUtils`,提供快速的JSON串到Java对象的映射,以及对象到JSON串的转换,通常基于Gson、Jackson或Fastjson等库。 5. **图片处理工具类**:在Android中,图片加载、裁剪、压缩是常见...

    java获取京东商城地区数据(省/市/区县)

    province:北京 --cityName:朝阳区 ----countyName:三环以内 ----countyName:三环到四环之间 ----countyName:四环到五环之间 ----countyName:五环到六环之间 ...里面还包含:jsonUtils工具类,Nettool工具类

Global site tag (gtag.js) - Google Analytics