0
首先,我很抱歉复杂的标题,我无法找到更好的方法解释我的问题,但在这里,我会这么做:如何使用POJO“B”为Gson制作POJO“A”,但仅使用“B”的一个变量作为“A”
这里是我的两个的POJO:
POJO 1:
public class Station {
private int id;
private String name;
private ArrayList<String> lines;
public Station(int id, String name, ArrayList<String> lines) {
this.id = id;
this.name = name;
this.lines = lines;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public ArrayList<String> getLines() {
return lines;
}
}
POJO 2:
public class Connection {
private Station origin;
private Station destination;
private double time;
public Connection(Station origin, Station destination, double time) {
this.origin = origin;
this.destination = destination;
this.time = time;
}
public int getOrigin() {
return origin.getId();
}
public int getDestination() {
return destination.getId();
}
public double getTime() {
return time;
}
}
如您所见,我正在将“Station”POJO集成到“连接”POJO中。 如果我现在想要将Connection的一个对象转换为JSON字符串,它显然也会格式化两个工作站的“起源”和“目标”。但问题在于:我只希望“源”和“目标”由其代码表示,而不是“名称”或“行”等完整数据。
我该如何让GSON忽略这些变量?
Kenta1561
还有就是[DTO(HTTPS://en.wikipedia .org/wiki/Data_transfer_object)模式来处理你所问的问题:只需使用字符串而不是“Station”创建一个'ConnectionDto',或者只用一个字段创建一个'StationDto',然后将'Connection'据此。这将适用于任何序列化库。否则,你需要一个Gson的自定义序列化程序。 –