Как сериализовать list<customobject> с помощью gson ?
Всем привет,
У меня есть класс для сотрудников :
import java.util.List; public class Employee { private String name; private String profession; private Integer profId; private List<String> roles; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getProfession() { return profession; } public void setProfession(String profession) { this.profession = profession; } public Integer getProfId() { return profId; } public void setProfId(Integer profId) { this.profId = profId; } public List<String> getRoles() { return roles; } public void setRoles(List<String> roles) { this.roles = roles; } @Override public String toString() { String result = name + "\n" + profession + "\n" + profId + "\n" + roles.toString(); return result; } }
Я пытаюсь создать представление Json для списка сотрудников :
List<Employee> emps = new ArrayList<>(); Employee emp1 = new Employee(){ { setName("Hassan"); setProfession("doctor"); setProfId(52); setRoles( Arrays.asList("surgeon" , "nose")); }}; Employee emp2 = new Employee(){ { setName("Jack"); setProfession("Developer"); setProfId(52); setRoles( Arrays.asList("Java" )); }}; Employee emp3 = new Employee(){ { setName("Safy"); setProfession("Driver"); setProfId(52); setRoles( Arrays.asList("Nice" , "Kind" )); }}; emps.add(emp1); emps.add(emp2); emps.add(emp3); Gson gson = new Gson(); Type type = new TypeToken<List<Employee>>(){}.getType(); String jsonString = gson.toJson(emps,type);
Результирующая jsonString = "[null,null,null]"
в отладке список emps имеет 3 сотрудника как и ожидалось и ни один из них не является нулевым
Как это можно сделать правильно ?
Большое спасибо!
Что я уже пробовал:
Я искал,
все ответы говорили о том, что я должен просто использовать TypeToken при объявлении типа witch, который я сделал, но безрезультатно,