Потеря данных в расширенном классе при преобразовании в строку JSON - PullRequest
0 голосов
/ 03 апреля 2020

Существует родительский класс и дочерний класс, который его расширяет. Я установил значения, как указано в приведенном ниже коде, внутри класса Lion и добавил их в список объектов Animals. «Тип» является частью класса «Животные», а «Имя» является частью класса «Лев». Но при конвертации в JSON данные в классе Lion («Имя») теряются. Как решить эту проблему?

  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;
    }

1 Ответ

0 голосов
/ 03 апреля 2020

Сработало, когда я сменил банку Gson на версию 2.8.5. Ранее я использовал версию 1.4, которая имела эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...