使用反射机制将对象序列化Json
一 思路
- 获取对象的Class对象.
- 获取对象的属性数组, 迭代属性数据拼接属性名与属性值, 存入List.
- 将List转换为流库, 再将流库使用逗号分隔符转换为字符串, 去掉首尾的逗号
二 代码
public static <T> String serializeJson(T object) throws ServiceException { try { LinkedList<String> linkedList = new LinkedList<>(); linkedList.add("{,"); Class<? extends Object> clazz = object.getClass(); // 迭代类的属性数组 for (Field attribute : clazz.getDeclaredFields()) { attribute.setAccessible(true); Object attributeValue = attribute.get(object); String attributeName = attribute.getName(); if(attributeValue != null){ linkedList.add("\"" + attributeName + "\":\"" + attributeValue + "\""); } attribute.setAccessible(false); } linkedList.add(",}"); return linkedList.stream().collect(Collectors.joining(",")).replaceAll(",,", ""); } catch (Exception e) { throw new ServiceException("JSON序列化异常"); } }