当前位置: 首页 > news >正文

用反射实现自定义Java对象转化为json工具类

  1. 传入一个object类型的对象
  2. 获取该对象的class类
  3. getFields方法获取该类的所有属性
  4. 对属性进行遍历,并且拼接成Json格式的字符串,注意:通过属性名来推断方法名
  5. 获取Method实例
  6. 通过invoke方法调用
public static String objectToJsonUtil(Object object) throws Exception {String s = "{";Class c = object.getClass();Field[] fields = c.getFields();for(Field f : fields){String name = "get"+String.valueOf(f.getName().charAt(0)).toUpperCase()+f.getName().substring(1);Method method = c.getMethod(name);s+=f.getName()+":"+method.invoke(object)+",";}s=s.substring(0,s.length()-1);s+="}";return s;}

以User类进行测试

public class User {private int id;private String name;public User(int id, String name) {this.id = id;this.name = name;}public User(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", id=" + id +'}';}
}
User user = new User(1,"tom");
String s = objectToJson(user);
System.out.println(s);

  

http://www.lryc.cn/news/149333.html

相关文章:

  • rk3568 nvme硬盘分区,格式化,挂载测试
  • Failed to load ApplicationContext解决办法,spring版本问题
  • Is f(z)=1/z truly an analytic function
  • 代理模式 静态代理和动态代理(jdk、cglib)——Java入职第十一天
  • Remmina在ubuntu22.04中无法连接Windows
  • 【uniapp】this有时为啥打印的是undefined?(箭头函数修改this)
  • 2023高教社杯数学建模思路 - 复盘:光照强度计算的优化模型
  • 河道漂浮物检测:安防监控/视频智能分析/AI算法智能分析技术如何助力河道整治工作?
  • Dubbo 应用切换 ZooKeeper 注册中心实例,流量无损迁移
  • ADB入门教程
  • SQLPro Studio for Mac:强大的SQL开发和管理工具
  • 淘宝API技术解析,实现按图搜索淘宝商品
  • 错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li
  • 使用MATLAB解算炼油厂的选址
  • AudioTrack播放音乐之getMinBufferSize
  • React和Redux中的不变性
  • NPM 常用命令(一)
  • 【ES6】Promise推荐用法
  • 【JavaScript】版本判断
  • Nano编辑器安装使用指南
  • Java版电子招投标管理系统源码-电子招投标认证服务平台-权威认证
  • Java String类(1)
  • 渗透测试漏洞原理之---【CSRF跨站请求伪造】
  • 带量采购药品数据查询集采分析平台(建议收藏!)
  • 概念解析 | 无线感知的新篇章:异构网络感知的原理与挑战
  • 【大数据模型】让chatgpt为开发增速(开发专用提示词)
  • 读书笔记-《ON JAVA 中文版》-摘要23[第二十章 泛型-2]
  • 【爬虫】5.6 Selenium等待HTML元素
  • 0102阿里云配置3台ECS服务器-大数据学习
  • android 输入法demo