java - 转换为 JSON 字符串时扩展类中的数据丢失

标签 java json gson extend

有一个父类和一个扩展它的子类。我已经在 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/

相关文章:

java - 有没有办法用 SQL Server JDBC 驱动程序显示 PRINT 结果?

javascript - 如何在我的 json 数据文件更改时刷新页面

arrays - Gson 我无法反序列化包含纬度和经度的数组

java - 用于多个 Maven 模块项目的 proguard

java - RabbitMQ 消息签名

java - 忽略非转义字符的 CharacterData

java - 读取网络共享上的文件

json - 为嵌套的json数据创建Hive表

json - Swift Codable 解码更改 JSON 并忽略某些字段

java - 将 JSON 字符串转换回 Java 列表