webservice使用中JSON与Java互转工具类
发布时间:2020-12-16 23:12:55 所属栏目:安全 来源:网络整理
导读:package com.sf.module.webservice.utils;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.math.BigDecimal;import java.math.BigInteger;import java.text.SimpleDateFormat;i
package com.sf.module.webservice.utils;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.math.BigDecimal;import java.math.BigInteger;import java.text.SimpleDateFormat;import java.util.Date;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Set;/** *
* ********************************************* * All rights reserved. * Description: TODO(这里用一句话描述这个类的作用) * HISTORY: * ********************************************* * Version Date Author Desc * v2.0 Sep 18,2014 307454 java和json互转的工具类 * ********************************************* **/public class JsonUtil {//第一个属性的头public final static String jsonFirstEleHead = "result";//第二个属性的头public final static String jsonSecondEleHead = "content";//第三个属性的头public final static String jsonThirdEleHead = "data";//返回成功public final static String callBackSuccess = "Success";//返回失败public final static String callBackFailure = "Failure";// 日期格式public final static String datePattern = "yyyy-MM-dd HH:mm:ss"; // 转换格式private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");/** * @Description: TODO(这 里用一句话描述这个方法的作用) * @param head 返回的结果 * @param object 传入的对象 * @return *************************************************** Version Date Author Desc --------------------------------------------------- v2.0 Sep 18,2014 307454 这里用一句话描述此版本改动的关键描述 *************************************************** */public static String getJson(String head,Object object){StringBuilder json = new StringBuilder();json.append("{");json.append(jsonFirstEleHead).append(":").append(object2json(head)).append(",");json.append(jsonSecondEleHead).append(":").append(object2json(object));json.append("}");return json.toString();}public static String getJson(String head,Object object,Object data){StringBuilder json = new StringBuilder();json.append("{");json.append(jsonFirstEleHead).append(":").append(object2json(head)).append(",");json.append(jsonSecondEleHead).append(":").append(object2json(object));if(!"".equals(data)&&data!=null){json.append(",").append(jsonThirdEleHead).append(":").append(object2json(data));}json.append("}");return json.toString();} 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(""");// System.out.println("obj.toString()"+obj.toString()+"=========string2json(obj.toString()):"+string2json(obj.toString())); } else if(obj instanceof Date){ json.append(""").append(string2json(dateFormat.format((Date)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(); } /** * 对象bean转换为Json * @param bean * @return */ 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(); } /** * List集合转换为Json * @param list * @return */ 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(); } /** * 对象数组转换为Json * @param array * @return */ 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(",']'); } else { json.append("]"); } return json.toString(); } /** * Map集合转换为Json * @param map * @return */ 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(",'}'); } else { json.append("}"); } return json.toString(); } /** * Set集合转为Json * @param set * @return */ 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(",']'); } else { json.append("]"); } return json.toString(); } /** * 字符串转换为Json * @param s * @return */ 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; 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(); } /** * @Description: TODO(这里用一句话描述这个方法的作用) * @param map 必填参数的集合 * @return *************************************************** Version Date Author Desc --------------------------------------------------- v2.0 Sep 19,2014 307454 判断参数为空 *************************************************** */ public static String checkValidate(LinkedHashMap map){ String error = ""; int i= 0; for(String filedName: map.keySet()){ Object value = map.get(filedName); if ("".equals(value)||value==null||"null".equals(value)) { error+="参数"; error+=filedName; error+="不能为空!,"; } } if(error.endsWith(",")){ error=error.substring(0,error.length()-1); } return error; } /** * @Description: TODO(这里用一句话描述这个方法的作用) * @param begin 开始时间 * @param after 结束时间 * @return *************************************************** Version Date Author Desc --------------------------------------------------- v2.0 Sep 19,2014 307454 校验两个世界大小 *************************************************** */ public static String compareTwoTime(Date begin,Date after){ String error = ""; if(begin == null ||after==null){ error ="开始时间或者结束时间为空,不能比较"; } if(begin.after(after)){ error ="开始时间大于结束时间,时间参数异常!"; } return error; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |