我有一个TeamResponse类用于形成JSON响应。它有一些参数,其中一个可以是可选的:
public TeamResponse(Team team, List<TeamSkillTemplateResponse> teamSkillTemplateResponses) {
this.id = team.getId();
this.name = team.getName();
this.department = new DepartmentResponse(team.getDepartment());
this.division = new DivisionResponse(team.getDepartment().getDivision());
this.valueStream = team.getValueStream().map(ValueStreamResponse::new).orElseGet(null);
this.skillTemplate = teamSkillTemplateResponses;
}
我实际上有两个问题: 1.如果值不存在,在响应中返回null是否合适? 2.以这种方式返回null是否合适? (方法 getTeam()返回可选)
谢谢。
答案 0 :(得分:5)
答案 1 :(得分:0)
在我看来,如果没有值,可以返回null。我看到的唯一其他两个选项在JSON回复中根本没有包含缺失值,或者使用一些默认值表示缺少值。
完全省略该值取决于您用于创建实际JSON的库。使用JAXB注释时,AFAIK无法执行此操作。如果您使用杰克逊,则可以使用(见this answer)。
第二个选项取决于是否有合适的默认值。如果你的值是一个数组,我肯定会选择这个选项。而不是返回null我将返回一个空数组,因为这通常可以由客户端处理而无需任何特殊处理。