Reputation: 135
I'm new to Spring boot and I need to create a DTO in order to map my request body. Please find the request body below:
{
"request":{
"header":{
"property_a":"xxx",
"property_b":"xxx",
"property_c":123
},
"data":{
"search":{
"last_name":"xxx",
"first_name":"xxx",
"birth_date":"xxx",
"phone_number":"xxx"
}
}
}
How will I create a DTO to map the above json body request?
Upvotes: 1
Views: 393
Reputation: 662
Hopefully below can be one of the approach you can follow -
-----------------------------------com.example.Data.java-----------------------------------
package com.example;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"search"
})
public class Data {
@JsonProperty("search")
private Search search;
@JsonProperty("search")
public Search getSearch() {
return search;
}
@JsonProperty("search")
public void setSearch(Search search) {
this.search = search;
}
}
-----------------------------------com.example.Example.java-----------------------------------
package com.example;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"request"
})
public class Example {
@JsonProperty("request")
private Request request;
@JsonProperty("request")
public Request getRequest() {
return request;
}
@JsonProperty("request")
public void setRequest(Request request) {
this.request = request;
}
}
-----------------------------------com.example.Header.java-----------------------------------
package com.example;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"property_a",
"property_b",
"property_c"
})
public class Header {
@JsonProperty("property_a")
private String propertyA;
@JsonProperty("property_b")
private String propertyB;
@JsonProperty("property_c")
private Integer propertyC;
@JsonProperty("property_a")
public String getPropertyA() {
return propertyA;
}
@JsonProperty("property_a")
public void setPropertyA(String propertyA) {
this.propertyA = propertyA;
}
@JsonProperty("property_b")
public String getPropertyB() {
return propertyB;
}
@JsonProperty("property_b")
public void setPropertyB(String propertyB) {
this.propertyB = propertyB;
}
@JsonProperty("property_c")
public Integer getPropertyC() {
return propertyC;
}
@JsonProperty("property_c")
public void setPropertyC(Integer propertyC) {
this.propertyC = propertyC;
}
}
-----------------------------------com.example.Request.java-----------------------------------
package com.example;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"header",
"data"
})
public class Request {
@JsonProperty("header")
private Header header;
@JsonProperty("data")
private Data data;
@JsonProperty("header")
public Header getHeader() {
return header;
}
@JsonProperty("header")
public void setHeader(Header header) {
this.header = header;
}
@JsonProperty("data")
public Data getData() {
return data;
}
@JsonProperty("data")
public void setData(Data data) {
this.data = data;
}
}
-----------------------------------com.example.Search.java-----------------------------------
package com.example;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"last_name",
"first_name",
"birth_date",
"phone_number"
})
public class Search {
@JsonProperty("last_name")
private String lastName;
@JsonProperty("first_name")
private String firstName;
@JsonProperty("birth_date")
private String birthDate;
@JsonProperty("phone_number")
private String phoneNumber;
@JsonProperty("last_name")
public String getLastName() {
return lastName;
}
@JsonProperty("last_name")
public void setLastName(String lastName) {
this.lastName = lastName;
}
@JsonProperty("first_name")
public String getFirstName() {
return firstName;
}
@JsonProperty("first_name")
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@JsonProperty("birth_date")
public String getBirthDate() {
return birthDate;
}
@JsonProperty("birth_date")
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
@JsonProperty("phone_number")
public String getPhoneNumber() {
return phoneNumber;
}
@JsonProperty("phone_number")
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
Upvotes: 3