package com.cl.privilege.utils; import java.lang.reflect.Field; import java.util.Collection; public class JsonUtil { public static StringBuffer convertObj2json(Collection<?> cs) { StringBuffer sbf = new StringBuffer(); if (null == cs || 0 == cs.toArray().length){ return sbf.append("[").append("]"); } Object[] ls = cs.toArray(); int size = ls.length; sbf.append("["); if (0 == size) return new StringBuffer("[]"); for (int k = 0; k < size; k++) { Object o = ls[k]; sbf.append(convertObj2json(o)); if (k < size - 1) sbf.append(", "); } return sbf.append("]"); } public static StringBuffer convertObj2json(Object o) { StringBuffer sbf = new StringBuffer(); if (null == o) return sbf; sbf.append("{"); Class<?> classType = o.getClass(); Field[] fields = classType.getDeclaredFields(); int length = fields.length; for (int i = 0; i < length; i++) { String fieldName = fields[i].getName(); Class<?> clazzType = fields[i].getType(); Package package1 = clazzType.getPackage(); Object fo = ReflectionUtil.getFieldValue(o, fieldName); if (!(fo instanceof Collection) && (clazzType.isPrimitive() || null == package1 || package1.getName().equals("java.lang") || package1 .getName().equals("java.util"))) { sbf.append("\"").append(fieldName).append("\":\"").append(fo) .append("\""); } else if (!(fo instanceof Collection)) { sbf.append("\"").append(fieldName).append("\":").append( convertObj2json(fo)); } if (fo instanceof Collection) { sbf.append("\"").append(fieldName).append("\":").append( convertObj2json((Collection<?>) fo)); } if (i < length - 1) sbf.append(", "); } return sbf.append("}"); } }