在做java开发的时候,经常要格式化java对象,闲来无事就写了一个,
如果传递的是单个对象生成数据格式 {"id":"1","name":"名字"}
传递的是list对象生成数据格式 [{"id":"1","name":"名字"},{"id":"2","name":"名字2"}]
暂时还不支持对象递归生成数据
public class JsonUtil { public static String toJson(Object obj){ StringBuffer json = new StringBuffer(); if(obj instanceof Collection){ json.append("["); Collection objColl = (Collection)obj; Iterator iterator = objColl.iterator(); while(iterator.hasNext()){ Object subObj = iterator.next(); json.append(toJson(subObj)).append(","); } if(json.charAt(json.length() - 1) == ‘,‘){ json.deleteCharAt(json.length() - 1); } json.append("]"); }else{ json.append("{"); Class objClass = obj.getClass(); Field[] fields = objClass.getDeclaredFields(); for(Field field : fields){ field.setAccessible(true); Object fieldObj = null; try { fieldObj = field.get(obj); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } if(fieldObj != null){ if(fieldObj instanceof Collection){ continue; } json.append("\"").append(field.getName()).append("\":\"").append(fieldObj).append("\"").append(","); }else{ json.append("\"").append(field.getName()).append("\":null").append(","); } } if(json.charAt(json.length() - 1) == ‘,‘){ json.deleteCharAt(json.length() - 1); } json.append("}"); } return json.toString(); } }
因为才疏学浅,所以还不知道有没有什么好的json开源项目,有的话可以推荐给我,谢谢各位了