【发布时间】:2017-11-11 15:11:46
【问题描述】:
在我们的应用程序中,用户可以根据用户 ID 或屏幕名称编写消息。
class Message {
public final Long userId;
public final String screenName;
public final String text;
@JsonCreator
public Message(@JsonProperty(value = "user_id", required = ???) Long userId,
@JsonProperty(value = "screen_name", required = ???) String screenName,
@JsonProperty(value = "text", required = true) String text) {
this.userId = userId;
this.screenName = screenName;
this.text = text;
}
}
字段 userId 和 screenName 不能同时是可选的,必须提供一个。
在 Spring Boot 中如何标记它们是半必需的?
【问题讨论】:
-
半必需是什么意思!至少其中一个应该存在?
-
是的,其中一个应该在场
-
您是否使用 json 架构来验证您的 json? Json 模式为此类用例提供 (oneOf; anyOf, ...)。
-
如果您使用的 spring 版本高于或等于 4.1 以及 java8,您可以使用 Optional 类 .. 并在开始业务之前简单地测试 userId 和 screenName
标签: spring spring-mvc spring-boot jackson