首先,我必须承认我对Web服务和DropWizard框架完全陌生。将JSON映射到POJO时的杰克逊验证
我目前正在执行POST请求,并试图将JSON正文解析为POJO。
当JSON采用所需的格式时,这很好用。但是,当JSON中的某个键缺失时,我的POJO将使用默认值。
我的问题是,是否有无论如何检查所有值的JSON或让杰克逊抛出某种异常,如果一个JSON键丢失?
public class PlacedBetDecimal extends PlacedBet {
private double odds;
// Empty constructor to please Jackson
public PlacedBetDecimal() {
}
public PlacedBetDecimal(@JsonProperty("bet_id") long bet_id,
@JsonProperty("stake") int stake,
@JsonProperty("odds") double odds) {
super.bet_id = bet_id;
super.stake = stake;
this.odds = odds;
}
public double getOdds() {
return odds;
}
@Override
public String toString() {
return "PlacedBetFractional{" +
"bet_id="+super.bet_id+
"stake="+super.stake+
"odds=" + odds +
'}';
}
}
这将是在体内JSON如下:
{
"bet_id": 1,
"odds": 11.0,
"stake": 10
}
如果由于某种原因,有人提供的体:
{
"odds": 11.0,
"stake": 10
}
然后,我想是能够抓住这个而不是杰克逊自动填充bet_id为0.
任何和所有的帮助将大大appr eciated。
嗨,谢谢你的回答。我试试看。我之前使用过NotEmpty注解不会产生任何影响,但是我不知道您还必须使用Valid来标记资源。 再次感谢:) –