有一个父类和一个扩展它的子类。我已经在 Lion 类中设置了下面代码中提到的值,并将其添加到 Animals 对象列表中。 “Type”是 Animals 类的一部分,“Name”是 Lion 类的一部分。但是,在 Lion 类(“名称”)中转换为 JSON 数据时,我们会迷失方向。如何解决这个问题?
public class Animals implements Serializable {
private static final long serialVersionUID = 1L;
private String type;
//getters and setters
}
public class Lion extends Animals implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
//getters and setters
}
public class Zoo implements Serializable {
private static final long serialVersionUID = 1L;
private List<Animals> listOfAnimals;
//getters and setters
}
//method to implement logic
public String createZoo(){
Lion lion= new Lion();
Zoo zoo=new Zoo();
List<Animals> list= new ArrayList<Animals>();
lion.setName("Alex");
lion.setType("Mammal");
list.add(lion); //which should be working fine since Lion extends Animal
zoo.setListOfAnimals(list);
//converting to JSON
Gson gson = new Gson();
String jsonString = gson.toJson(zoo);
return jsonString;
}
最佳答案
当我将 Gson jar 更改为 2.8.5 版本时有效。之前我用的是1.4版本,也有这个问题。
关于java - 转换为 JSON 字符串时扩展类中的数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61006859/