使用反射机制将对象序列化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序列化异常");
        }
    }

 

转载于:https://www.cnblogs.com/suoruijun/p/11209797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值