一 思路

  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序列化异常");
}
}

最新文章

  1. DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考
  2. 纯CSS打造好看的按钮样式
  3. Nagios check_logfiles插件的使用记录
  4. 【BZOJ】【3210】花神的浇花集会
  5. PHP之路,Day1 - PHP基础
  6. 仿春雨医生 安卓app(android)
  7. 发展合作-ASP.Net传递页面之间的值
  8. 《Shell十三问》笔记(下)
  9. 重磅︱R+NLP:text2vec包——New 文本分析生态系统 No.1(一,简介)
  10. oracle 11g空表不能exp导出问题解决方案
  11. MySQL8.0 关闭二进制日志
  12. 安装routeos
  13. Sqlserver数据库中的临时表详解
  14. 使用POI操作PPT文档(插入文本、图片)转
  15. 【Java-Web】初始化加载Serlvet工程后-HttpServlet报错
  16. Python小白学习之路(十九)—【文件操作步骤】【文件操作模式】
  17. c语言输出控制符
  18. PostreSQL崩溃试验全记录
  19. 怎么样通过编写Python小程序来统计测试脚本的关键字
  20. CodeForces - 258D:Little Elephant and Broken Sorting(概率DP)

热门文章

  1. hadoop(三)
  2. 在Azure中搭建Ghost博客并绑定自定义域名和HTTPS
  3. 12 寸 Retina MacBook 的大秘密: 可用移动电源充电
  4. PHP开发框架 Laravel
  5. Java实现Qt的SIGNAL-SLOT机制(保存到Map中,从而将它们关联起来,收到信号进行解析,最后反射调用)
  6. [java代码库]-简易计算器(第二种)
  7. java多线程之Lock/Condition简介
  8. Spring Cloud Gateway使用
  9. 支持向量机 (二): 软间隔 svm 与 核函数
  10. 【Mac】Mac快捷键与Mac下的Idea快捷键