java将数据转化成json格式

来源:互联网 发布:淘宝客源码哪家好 编辑:程序博客网 时间:2024/04/30 14:33

1.使用highcharts做报表的时候需要用到json格式的数据,以下方法类能将各种格式的文件转化成json格式的数据

2.

package com.primeton.json  /**   * 作用:此类用于将数据转换为json格式的数据   * 时间:2014年7月26日11:34:57   * */  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;  import org.apache.commons.logging.Log;  import org.apache.commons.logging.LogFactory;  public class JsonUtil {  private static Log log = LogFactory.getLog(JsonUtil.class);  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();    }  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) {}               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) {}                 }                 json.setCharAt(json.length() - 1, '}');               } else {                 json.append("}");               }               return json.toString();    }  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();    }  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();    }  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();    }  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();    }  public static String string2json(String s) {               if (s == null)                 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();    }  }  

0 0
原创粉丝点击