2015-09-16 3 views
3

Я пытаюсь преобразовать Java объект в JSON с помощью Groovy JsonBuilderПреобразование Java объект в JSON с помощью Groovy JsonBuilder

Java POJO класса

public class Employee { 

    String name; 

    int age; 

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

Groovy Script

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

println new JsonBuilder(employee).toPrettyString() 

Выход

{ 

} 

Я не уверен, что неправильно использую JsonBuilder. Пожалуйста, помогите

ответ

3

Поскольку вы используете Java POJO, вам нужно добавить добытчик для двух свойств у вас есть, то есть, public String getName() и public String getAge().

JsonBuilder использует DefaultGroovyMethods.getProperties для получения свойств объекта. Если вы не добавите вышеупомянутых геттеров, он не найдет никаких свойств, и поэтому полученный 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); 
    } 
} 

Если вы используете пый вместо (Plain Old Groovy Object), добытчиков добавляются по умолчанию для каждого свойства, поэтому он работает из коробки:

Смежные вопросы