我正在尝试使用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。请帮忙
答案 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 ,因此它开箱即用: