整理了一下 Java 实现任意对象转化为 JSON 的代码。后期再整理整理通过JSON 转换为 Java 对象的。以下代码供大家鉴赏。直接可放到自己工程里面用,工具类。 不知道 JSON 为何物的请戳这里。
package com.mayflygeek.util;
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;
/**
* 任意对象转化为JSON
*
* @author ヅ虫虫ゎ
*
*/
{
/**
*
* @param obj
* 任意对象
String objectToJson(Object obj) {
System.out.println("objectToJson");
System.out.println("===========");
StringBuilder json = new StringBuilder();
(obj == null) {
json.append("\"\"");
(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(stringToJson(obj.toString())).append("\"");
(obj instanceof Object[]) {
json.append(arrayToJson((Object[]) obj));
(obj instanceof List) {
json.append(listToJson((List<?>) obj));
(obj instanceof Map) {
json.append(mapToJson((Map<?, ?>) obj));
(obj instanceof Set) {
json.append(setToJson((Set<?>) obj));
} else {
json.append(beanToJson(obj));
}
System.out.println(json.toString());
json.toString();
}
/**
*
* @param str
* 字符串对象
String stringToJson(String str) {
System.out.println("stringToJson");
System.out.println("==========");
(str == null) {
;
}
StringBuilder sb = new StringBuilder();
(int i = 0; i < str.length(); i++) {
ch = str.charAt(i);
(ch) {
:
sb.append("\\\"");
;
:
sb.append("\\\\");
;
:
sb.append("\\b");
;
:
sb.append("\\f");
;
:
sb.append("\\n");
;
:
sb.append("\\r");
;
:
sb.append("\\t");
;
:
sb.append("\\/");
;
:
(ch >= '\u0000' && ch <= '\u001F') {
String ss = Integer.toHexString(ch);
sb.append("\\u");
(int k = 0; k < 4 - ss.length(); k++) {
sb.append('0');
}
sb.append(ss.toUpperCase());
} else {
sb.append(ch);
}
}
}
System.out.println(sb.toString());
sb.toString();
}
/**
*
* @param array
* 对象数组
String arrayToJson(Object[] array) {
System.out.println("arrayToJson");
System.out.println("==========");
StringBuilder json = new StringBuilder();
json.append("[");
(array != null && array.length > 0) {
(Object obj : array) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
System.out.println(json.toString());
json.toString();
}
/**
*
* @param list
* List对象
String listToJson(List<?> list) {
System.out.println("listToJson");
System.out.println("==========");
StringBuilder json = new StringBuilder();
json.append("[");
(list != null && list.size() > 0) {
(Object obj : list) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
System.out.println(json.toString());
json.toString();
}
/**
*
* @param map
* Map对象
String mapToJson(Map<?, ?> map) {
System.out.println("mapToJson");
System.out.println("=========");
StringBuilder json = new StringBuilder();
json.append("{");
(map != null && map.size() > 0) {
(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("}");
}
System.out.println(json.toString());
json.toString();
}
/**
*
* @param set
* Set对象
String setToJson(Set<?> set) {
System.out.println("setToJson");
System.out.println("==========");
StringBuilder json = new StringBuilder();
json.append("[");
(set != null && set.size() > 0) {
(Object obj : set) {
json.append(objectToJson(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
System.out.println(json.toString());
json.toString();
}
/**
*
* @param bean
* Bean对象
String beanToJson(Object bean) {
System.out.println("beanToJson");
System.out.println("==========");
StringBuilder json = new StringBuilder();
json.append("{");
PropertyDescriptor[] props = null;
{
props = Introspector.getBeanInfo(bean.getClass(), Object.class).getPropertyDescriptors();
} catch (IntrospectionException e) {
}
(props != null) {
(int i = 0; i < props.length; i++) {
{
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("}");
}
System.out.println(json.toString());
json.toString();
}
}