Ich sehe eine leere Antwort "{}", wenn ich die unten ausführen. Die Mitarbeiterklasse hat eine Liste, von der ich annehme, dass sie das Problem verursacht. Bitte kannst du mich wissen lassen, wie ich das überwinden kann?GSON - Konvertieren Objekt, das eine generische Liste in JSON String hat
public class ServiceValidationTest {
private Gson gson;
public ServiceValidationTest() {
this.setGson(new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.registerTypeHierarchyAdapter(byte[].class,
new GsonByteArrayHandler())
.registerTypeHierarchyAdapter(boolean.class,
new GsonBooleanHandler())
.registerTypeHierarchyAdapter(Date.class,
new GsonDateHandler())
.create());
}
public static void main(String[] args) throws Exception{
List<Grade> grades = new ArrayList<Grade>();
grades.add(new Grade("1"));
grades.add(new Grade("2"));
grades.add(new Grade("3"));
grades.add(new Grade("4"));
Employee employee = new Employee();
employee.setGrades(grades);
employee.setName("someone");
System.out.println(new ServiceValidationTest().getGson().toJson(employee));
}
public Gson getGson() {
return gson;
}
public void setGson(Gson gson) {
this.gson = gson;
}
}
Mitarbeiter Klasse
package com.test;
import java.util.List;
public class Employee {
private String name;
private List<Grade> grades;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Grade> getGrades() {
return grades;
}
public void setGrades(List<Grade> grades) {
this.grades = grades;
}
}
Grade
package com.test;
public class Grade {
public Grade(String grade) {
super();
this.grade = grade;
}
private String grade;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
EDIT
Ich habe herausgefunden, dass der folgende Code das Problem verursacht. Wenn, wenn neue Gson erklären() und das Gson Objekt verwenden, wird es wie erwartet -
this.setGson(new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.registerTypeHierarchyAdapter(byte[].class,
new GsonByteArrayHandler())
.registerTypeHierarchyAdapter(boolean.class,
new GsonBooleanHandler())
.registerTypeHierarchyAdapter(Date.class,
new GsonDateHandler())
.create());