如何制作POJO" A"与POJO" B"对于Gson而言,只需使用" B"为" A"

时间:2017-02-25 16:57:54

标签: java json gson

首先,我很抱歉复杂的标题,我找不到更好的方法来解释我的问题,但在这里我会这样做:

以下是我的两个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;
}

}

正如您所看到的,我正在整合&#34; Station&#34; POJO进入&#34;连接&#34; POJO。 如果我现在想要将Connection的对象转换为JSON字符串,它显然会格式化两个工作站&#34; origin&#34;和&#34;目的地&#34;同样。但问题出在这里:我只想要&#34;起源&#34;和&#34;目的地&#34;由其代码表示,而不是诸如&#34; name&#34;之类的完整数据。或&#34;行&#34;。

如何让GSON忽略这些变量?

Kenta1561

1 个答案:

答案 0 :(得分:0)

您不应忽略序列化中的这些值。

把它们放在那里没有什么不妥,没有什么不对。

您应该解析数据库或UI中唯一必需的数据。

如果您只想在Connection中使用工作站ID和名称,那么您可以拥有一个仅包含id和name字段的抽象Connection类