使用Groovy JsonBuilder将Java Object转换为JSON

时间:2015-09-16 09:11:52

标签: java json groovy

我正在尝试使用Groovy JsonBuilder将Java Object转换为JSON

Java POJO Class

public class Employee {

    String name;

    int age;

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

Groovy脚本

Employee employee = new Employee();
employee.name="Vinod"
employee.age=24

println new JsonBuilder( employee ).toPrettyString()

输出

{

}

我不确定我是否错误地使用了JsonBuilder。请帮忙

1 个答案:

答案 0 :(得分:3)

由于您使用的是Java POJO,因此需要为您拥有的两个属性添加 getters ,即public String getName()public String getAge()

JsonBuilder利用DefaultGroovyMethods.getProperties来获取对象属性。如果您不添加上述getter,则它找不到任何属性,因此生成的JSON为空。

那样:

<强> Employee.java

public class Employee {
    String name;
    int age;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return String.format("Employee{name=%s, age=%d}", name, age);
    }
}

如果您使用POGO(普通旧Groovy对象),默认情况下会为每个属性添加 getters ,因此它开箱即用: