`
hanjava
  • 浏览: 32367 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

JSON转换工具类

 
阅读更多
import java.beans.IntrospectionException; 
import java.beans.Introspector; 
import java.beans.PropertyDescriptor; 
import java.util.List; 
import java.util.Map; 
import java.util.Set;

/**
* json转换Utils
* @author
*
*/
public class JsonUtils {

/**
* 字符串转换
* @param s
* @return
*/
public static String stringToJson(String s) { 
        if (s == null) { 
            return nullToJson(); 
        } 
        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(); 
    } 
 
    public static String nullToJson() { 
        return ""; 
    } 
 
    public static String objectToJson(Object obj) { 
        StringBuilder json = new StringBuilder(); 
        if (obj == null) { 
            json.append("\"\""); 
        } else if (obj instanceof Number) { 
            json.append(numberToJson((Number) obj)); 
        } else if (obj instanceof Boolean) { 
            json.append(booleanToJson((Boolean) obj)); 
        } else if (obj instanceof String) { 
            json.append("\"").append(stringToJson(obj.toString())).append("\""); 
        } else if (obj instanceof Object[]) { 
            json.append(arrayToJson((Object[]) obj)); 
        } else if (obj instanceof List) { 
            json.append(listToJson((List<?>) obj)); 
        } else if (obj instanceof Map) { 
            json.append(mapToJson((Map<?, ?>) obj)); 
        } else if (obj instanceof Set) { 
            json.append(setToJson((Set<?>) obj)); 
        } else { 
            json.append(beanToJson(obj)); 
        } 
        return json.toString(); 
    } 
 
    public static String numberToJson(Number number) { 
        return number.toString(); 
    } 
 
    public static String booleanToJson(Boolean bool) { 
        return bool.toString(); 
    } 
 
    /**
     * @param bean
     *            bean对象
     * @return String
     */ 
    public static String beanToJson(Object bean) { 
        StringBuilder json = new StringBuilder(); 
        json.append("{"); 
        PropertyDescriptor[] props = null; 
        try { 
            props = Introspector.getBeanInfo(bean.getClass(), Object.class) 
                    .getPropertyDescriptors(); 
        } catch (IntrospectionException e) { 
        } 
        if (props != null) { 
            for (int i = 0; i < props.length; i++) { 
                try { 
                    String name = objectToJson(props[i].getName()); 
                    String value = objectToJson(props[i].getReadMethod() 
                            .invoke(bean)); 
                    json.append(name); 
                    json.append(":"); 
                    json.append(value); 
                    json.append(","); 
                } catch (Exception e) { 
                } 
            } 
            json.setCharAt(json.length() - 1, '}'); 
        } else { 
            json.append("}"); 
        } 
        return json.toString(); 
    } 
 
    /**
     * @param list
     *            list对象
     * @return String
     */ 
    public static String listToJson(List<?> list) { 
        StringBuilder json = new StringBuilder(); 
        json.append("["); 
        if (list != null && list.size() > 0) { 
            for (Object obj : list) { 
                json.append(objectToJson(obj)); 
                json.append(","); 
            } 
            json.setCharAt(json.length() - 1, ']'); 
        } else { 
            json.append("]"); 
        } 
        return json.toString(); 
    } 
 
    /**
     * @param array
     *            对象数组
     * @return String
     */ 
    public static String arrayToJson(Object[] array) { 
        StringBuilder json = new StringBuilder(); 
        json.append("["); 
        if (array != null && array.length > 0) { 
            for (Object obj : array) { 
                json.append(objectToJson(obj)); 
                json.append(","); 
            } 
            json.setCharAt(json.length() - 1, ']'); 
        } else { 
            json.append("]"); 
        } 
        return json.toString(); 
    } 
 
    /**
     * @param map
     *            map对象
     * @return String
     */ 
    public static String mapToJson(Map<?, ?> map) { 
        StringBuilder json = new StringBuilder(); 
        json.append("{"); 
        if (map != null && map.size() > 0) { 
            for (Object key : map.keySet()) { 
                json.append(objectToJson(key)); 
                json.append(":"); 
                json.append(objectToJson(map.get(key))); 
                json.append(","); 
            } 
            json.setCharAt(json.length() - 1, '}'); 
        } else { 
            json.append("}"); 
        } 
        return json.toString(); 
    } 
 
    /**
     * @param set
     *            集合对象
     * @return String
     */ 
    public static String setToJson(Set<?> set) { 
        StringBuilder json = new StringBuilder(); 
        json.append("["); 
        if (set != null && set.size() > 0) { 
            for (Object obj : set) { 
                json.append(objectToJson(obj)); 
                json.append(","); 
            } 
            json.setCharAt(json.length() - 1, ']'); 
        } else { 
            json.append("]"); 
        } 
        return json.toString(); 
    }
}
分享到:
评论

相关推荐

    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 和...

    Json 转换工具类

    标题中的“Json 转换工具类”指的是`Newtonsoft.Json`库中的关键类和方法,它们提供了强大的JSON操作功能。这个工具类使得开发者能够方便地将JSON字符串与.NET对象之间进行转换,极大地方便了数据的处理和交换。 ...

    json转换工具类

    json转换工具类,可以转换很多格式。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    JsonUtils(Json转换工具类)

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

    jackson-all json转换工具类

    jackson-all json转换工具类,改类提供了各种格式对应json的转换。 可以方便的用于需要通过json传输的系统架构。

    xml/Json转换工具类

    本篇将详细介绍如何使用Java工具类进行XML与JSON的转换,并介绍相关知识。 首先,`pom依赖.txt`文件中应包含的是Maven项目的依赖信息。在Java项目中,我们需要引入处理XML和JSON转换的库。通常,我们使用如Jackson...

    Json转换工具类

    在Java开发中,处理JSON数据时,经常会用到JSON转换工具类,如本例中的`JsonUtils`。 `JsonUtils`类主要提供了三个核心方法,用于实现Java对象与JSON字符串之间的相互转换: 1. `objectToJson(Object data)`:此...

    JSON对象转换工具类(JavaScript端)

    挺好用的一个JSON转换工具包,含Java端与JavaScript端的JSON对象转换工具类,使用时直接导入至项目源文件中并调用相关类及方法即可。此文件为JavaScript端使用,如需Java端的请移步我的另一上传资源“JSON对象转换...

    json转换工具jackson

    本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **Jackson库介绍** Jackson是一个开源项目,其核心库为`com.fasterxml.jackson.core`,包括`jackson-databind`、`jackson...

    Xml和Json互转工具类

    本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。

    json与xml互相转换工具类

    json与xml互相转换工具类

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

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

    JAVA-JSON工具转换类

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

    格式转换工具json2bin

    JSON转换工具通常包含以下功能: 1. **解析JSON**: 工具首先需要解析JSON文本,将其转化为内存中的数据结构。这涉及到验证JSON语法的正确性,如正确的大括号匹配、引号使用等。 2. **编组数据**: 将解析后的JSON...

    json转换工具

    JSON转换工具主要用于将JSON格式的数据转换为其他格式,或者将其他格式的数据转换成JSON,以适应不同的数据交互需求。 在你提供的压缩包文件中,包含了一些Java库,这些库是用于处理JSON转换和其他相关操作的。下面...

    xml & json 转换工具

    在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理成JSON格式。 XML到JSON的转换通常包括以下步骤: - 解析XML文档,将其转换为DOM(Document Object Model)树。...

Global site tag (gtag.js) - Google Analytics