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

  1. 传入一个object类型的对象
  2. 获取该对象的class类
  3. getFields方法获取该类的所有属性
  4. 对属性进行遍历,并且拼接成Json格式的字符串,注意:通过属性名来推断方法名
  5. 获取Method实例
  6. 通过invoke方法调用
java 复制代码
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类进行测试

java 复制代码
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;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", id=" + id +
                '}';
    }
}
java 复制代码
User user = new User(1,"tom");
String s = objectToJson(user);
System.out.println(s);
相关推荐
SoftLipaRZC1 分钟前
C语言文件:文件操作完全指南
android·java·c语言
零陵上将军_xdr2 分钟前
API 签名防重放机制:基于 HMAC-SHA256 的设计与实现
java·学习·安全架构
ch.ju3 分钟前
Java程序设计(第3版)第四章——set-get方法
java·开发语言
lpd_lt4 分钟前
如何让AI生成项目的单元测试,propmt技巧详解
java·人工智能·单元测试·ai编程
_日拱一卒11 分钟前
LeetCode:17电话号码的字母组合
java·数据结构·算法·leetcode·职场和发展
我是一颗柠檬12 分钟前
【Java项目技术亮点】Outbox事件驱动模式:解决分布式事务的终极方案
java·开发语言·分布式·后端·中间件·kafka
_Evan_Yao14 分钟前
为 LLM 预留“插座”:设计可插拔的 AI 能力底座
java·人工智能·后端·python
我登哥MVP15 分钟前
Spring Boot 从“会用”到“精通”:Converter 原理
java·spring boot·servlet·maven·mybatis·converter
Clf丶忆笙18 分钟前
搭建支持多语言开发的Quarkus环境:Java、Kotlin与Scala全栈指南
java·开发语言·云原生·kotlin·scala·quarkus
java1234_小锋20 分钟前
LangChain4j 开发Java Agent智能体- 对话与提示词工程(Prompt)
java·开发语言·prompt·langchain4j