Cugomstik:
私は春ブーツに新しいですし、私は、サードパーティのAPIにリクエストを送信したいと思います。私はとして使用するJSONでポストパラメータ以下の持って@RequestBodyを。
{ "たstartDate": "2015年7月1日"、 "endDateに": "2015年10月1日"、 "はuserId":1、 "タイプ":1}
OR
{ "たstartDate": "2015年7月1日"、 "endDateに": "2015年10月1日"}
public class ReportRequest {
@NotNull
private String startDate;
@NotNull
private String endDate;
private int userId;
private int type;
//getters and setters
私が使用@JsonInclude(JsonInclude.Include.NON_EMPTYをクラスとフィールドレベルで。私も試したNON_NULLを「userIdを」と「タイプ」を無視することが、私はまだ@RequestBodyオブジェクトでそれらを持っています。
@PostMapping(value="/getData", produces = "application/json")
public ResponseEntity getReport(@Valid @RequestBody ReportRequest reportRequest){
私はすべてのJSONのプロパティで要求を送信する問題はありません。私はちょうど必須データを送信するときしかし、「userIdを」と「タイプは、」自動的に0に設定されています。
私が使用して知っているオプションはベストプラクティスではありません。私は2つの、オプションのJSON要求データと要求オブジェクトを作成する方法を考え出すことができませんでした。ありがとうございました。
デッドプール :
であるこれは原始的であり、デフォルト値があるとだけなので、ヌル値を持つプロパティを無視するだろうととタイプそれのデフォルト値があることと、ジャクソンは、それらを除外することができますuserId
type
int
0
JsonInclude.Include.NON_NULL
userId
type
Integer
null
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReportRequest {
@NotNull
private String startDate;
@NotNull
private String endDate;
private Integer userId;
private Integer type;
}