package lmc; import java.lang.reflect.Field; import java.math.BigDecimal; import java.math.BigInteger; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class JsonUtils { public static String classToJson(Object bean){ StringBuilder json = new StringBuilder(); json.append("{"); try{ Field[]fds = bean.getClass().getDeclaredFields(); Field fd = null; if(fds!=null&&fds.length>0){ for(int i=0;i<fds.length;i++){ fd = fds[i]; fd.setAccessible(true); json.append("\""+fd.getName()+"\""); json.append(":"); json.append(JsonUtils.objectToJson(fd.get(bean))); json.append(","); } json.deleteCharAt(json.length()-1); } }catch(Exception e){ e.printStackTrace(); } json.append("}"); return json.toString(); } public static String listToJson(List<?>beans){ StringBuilder json = new StringBuilder(); json.append("["); if(beans!=null&&beans.size()>0){ for(Object bean:beans){ json.append(JsonUtils.objectToJson(bean)); json.append(","); } json.setCharAt(json.length()-1,']'); } json.append("]"); return json.toString(); } private static String objectToJson(Object obj){ StringBuilder res = new StringBuilder(); if(obj==null){ res.append("\"\""); }else if(obj instanceof Integer||obj instanceof Boolean||obj instanceof Byte|| obj instanceof Double||obj instanceof Float||obj instanceof Short|| obj instanceof Long||obj instanceof BigDecimal||obj instanceof BigInteger){ res.append("\""+obj.toString()+"\""); }else if(obj instanceof String||obj instanceof Character){ res.append("\""+JsonUtils.filter(obj.toString())+"\""); }else if(obj instanceof Date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); res.append("\""+sdf.format((Date)obj)+"\""); }else{ res.append("\""+obj.toString()+"\""); } return res.toString(); } private static String filter(String str){ if(str==null){ return ""; } StringBuilder sb = new StringBuilder(); for(int i=0;i<str.length();i++){ char ch=str.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:sb.append(ch);break; } } return sb.toString(); } }
最近下载更多
moomin709 LV24
2020年7月6日
wei112233 LV15
2020年2月2日
乞丐哥哥 LV23
2018年1月19日
fergfergfer LV2
2017年10月11日
seasuka LV15
2017年7月31日
zqlongre LV2
2016年10月3日
wzg356 LV18
2015年1月3日
yongfahuang LV15
2014年6月12日
745030904 LV10
2014年5月21日
AXIN LV36
2014年2月25日
最近浏览更多
lee123321 LV22
2023年12月19日
3334004690 LV10
2023年11月1日
悟道子 LV16
2023年7月19日
ewan007 LV30
2022年7月8日
a3870764722a LV22
2022年6月7日
crosa_Don LV18
2022年3月31日
zxf987654321
2022年2月12日
暂无贡献等级
yyde52
2021年12月15日
暂无贡献等级
zhuiyunyiye LV12
2021年12月13日
zs131420 LV1
2021年11月29日