public class JsonUtil { public static String class2json(Object obj) { // 通過反射獲取到類 Class extends Object> clazz = obj.getClass(); // 獲取類中所有的字段 Field[] fields = clazz.getDeclaredFields(); StringBuffer buffer = new StringBuffer(); buffer.append("{"); // 設置setAccessible方法能獲取到類中的私有屬性和方法 Field.setAccessible(fields, true); for (Field field : fields) { try { Object object = field.get(obj); // 獲取到該屬性對應類型名稱 String fieldName = field.getType().getSimpleName(); // 如果該屬性的值為空 if (object == null) { // 根據類型判斷追加的值 if (fieldName.equals("String")) { buffer.append(""" + field.getName() + "":"","); } else if (fieldName.equals("Boolean") || fieldName.equals("Integer") || fieldName.equals("Double") || fieldName.equals("Float") || fieldName.equals("Long")) { buffer.append(""" + field.getName() + "":0,"); } else { buffer.append(""" + field.getName() + "":null,"); } } else { // 獲取到該屬性的值對應的類 Class extends Object> fieldclass = object.getClass(); String simpleName = fieldclass.getSimpleName(); if (simpleName.equals("String")) { buffer.append(""" + field.getName() + "":"" + field.get(obj) + "","); } else if (simpleName.equals("Boolean") || simpleName.equals("Integer") || simpleName.equals("Double") || simpleName.equals("Float") || simpleName.equals("Long")) { buffer.append(""" + field.getName() + "":" + field.get(obj) + ","); } else if (simpleName.equals("Date")) { Date date = (Date) object; SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss"); String simdate = simpleDateFormat.format(date); buffer.append(""" + field.getName() + "":"" + simdate + "","); } else if (simpleName.equals("ArrayList") || simpleName.equals("LinkedList")) { // 將獲取到的值強轉為list集合 List
使用方法
1.先定義好自己的返回樣式
public class Result { int code; String message; List pigArray; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public List getPigArray() { return pigArray; } public void setPigArray(List pigArray) { this.pigArray = pigArray; } }public class Pig { int age; int weight;public int getAge() { return age;}public void setAge(int age) { this.age = age;}public int getWeight() { return weight;}public void setWeight(int weight) { this.weight = weight;} }
最後在程序中調用
Result rs=new Result(); rs.setCode(1); rs.setMessage("用戶有數據"); List list=new ArrayList(); Pig p= new Pig(); p.setAge(10); p.setWeight(23); list.add(p); rs.setPigArray(list); System.out.println("json:" +JsonUtil.class2json(rs));
效果如下:
{ "code": 1, "message": "用戶有數據", "pigArray": [{ "age": 10, "weight": 23 }]}
閱讀更多 java架構之路
的文章
關鍵字:
編程語言
技術
演示