使用反射机制将对象序列化Json
2024-08-31 22:43:06
一 思路
- 获取对象的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序列化异常");
}
}
最新文章
- DDD实践问题之 - 关于论坛的帖子回复统计信息的更新的思考
- 纯CSS打造好看的按钮样式
- Nagios check_logfiles插件的使用记录
- 【BZOJ】【3210】花神的浇花集会
- PHP之路,Day1 - PHP基础
- 仿春雨医生 安卓app(android)
- 发展合作-ASP.Net传递页面之间的值
- 《Shell十三问》笔记(下)
- 重磅︱R+NLP:text2vec包——New 文本分析生态系统 No.1(一,简介)
- oracle 11g空表不能exp导出问题解决方案
- MySQL8.0 关闭二进制日志
- 安装routeos
- Sqlserver数据库中的临时表详解
- 使用POI操作PPT文档(插入文本、图片)转
- 【Java-Web】初始化加载Serlvet工程后-HttpServlet报错
- Python小白学习之路(十九)—【文件操作步骤】【文件操作模式】
- c语言输出控制符
- PostreSQL崩溃试验全记录
- 怎么样通过编写Python小程序来统计测试脚本的关键字
- CodeForces - 258D:Little Elephant and Broken Sorting(概率DP)
热门文章
- hadoop(三)
- 在Azure中搭建Ghost博客并绑定自定义域名和HTTPS
- 12 寸 Retina MacBook 的大秘密: 可用移动电源充电
- PHP开发框架 Laravel
- Java实现Qt的SIGNAL-SLOT机制(保存到Map中,从而将它们关联起来,收到信号进行解析,最后反射调用)
- [java代码库]-简易计算器(第二种)
- java多线程之Lock/Condition简介
- Spring Cloud Gateway使用
- 支持向量机 (二): 软间隔 svm 与 核函数
- 【Mac】Mac快捷键与Mac下的Idea快捷键