使用反射机制将对象序列化Json

一 思路

  1. 获取对象的Class对象.
  2. 获取对象的属性数组, 迭代属性数据拼接属性名与属性值, 存入List.
  3. 将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序列化异常");
        }
    }

 

posted @ 2019-07-18 20:30  HellοWοrld  阅读(322)  评论(0编辑  收藏  举报