JSON.toJSONString()所有变量必须都有get方法,否则获取到的JSON字符串没有对应数据

163 阅读1分钟
@Data
public class Student {
    private Name name;
    private Integer age;
    private String play;

    @Override
    public String toString() {
        return "Student{" +
                "name=" + name +
                ", age=" + age +
                ", play='" + play + '\'' +
                '}';
    }
}

Name 类,注意 get 方法

public class Name {
    private String name;

    public Name(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "Name{" +
                "name='" + name + '\'' +
                '}';
    }

    public void setName(String name) {
        this.name = name;
    }
    public static void main(String[] args) throws InstantiationException, IllegalAccessException {
        Teacher teacher = new Teacher();
        Name name = new Name("name");

        teacher.setName(name);
        teacher.setAge(20);
        teacher.setSubject("语文");
        System.out.println(JSON.toJSONString(teacher));
        // Name 没有get方法获取到的结果
        // {"age":20,"name":{},"subject":"语文"}
        // Name 有get方法获取到的结果
		// {"age":20,"name":{"name":"name"},"subject":"语文"}
    }