(De)使用Gson序列化抽象类

时间:2018-12-15 17:02:22

标签: java polymorphism gson

因此,当前,我正在尝试寻找一种方法来对数据进行反序列化,以便Map能够包含Wagon的实例,而不仅仅是Component。我当前的对象结构有什么办法做到这一点?

class Standplaats {
   String id;
   Map<String, Trein> treinen;
}

class Trein {
   String id;
   Map<String, Component> componenten;
}

abstract class Component {
   String id;
}

class Wagon extends Component {
   int seats;
}

//serializing
Gson gson = new GsonBuilder().setPrettyPrinting().create();
List<Standplaats> list = new ArrayList<>(standplaatsen.size());
standplaatsen.forEach((id, standplaats) -> list.add(standplaats));
String toJson = gson.toJson(list);

//deserializing
Standplaats[] standplaatsen = GSON.fromJson(br, Standplaats[].class);

json当前看起来像这样:

{
"id": "standplaats1",
"treinen": {
  "trein1": {
    "id": "trein1",
    "componenten": {
      "wagon1": {
        "seats": 20,
        "id": "wagon1"
      }
    }
  }
}
}

0 个答案:

没有答案