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的自定義序列化程序。 –