将 ResponseEntity 包装到另一个对象中
Wrapping ResponseEntity into another object
我有以下响应结构。
{
"URL": "",
"sites": [
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": "",
}
]
},
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": "",
}
]
}
]
}
这是通过拥有多个模型来实现的。
SitesResponse
Sites
Details
MoreDetails
它们都有 getter 和设置器,我只是在控制器中设置了响应。有没有办法在不重写层次结构的情况下将所有响应移动到父对象?
举个例子,像这样:
{
"results": {
"URL": "",
"sites": [
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": ""
}
]
},
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": ""
}
]
}
]
}
}
您必须将它们放入另一个对象中,如下所示:
结果模型:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"URL",
"sites"
})
public class Results {
@JsonProperty("URL")
private String uRL;
@JsonProperty("sites")
private List < Site > sites = null;
@JsonProperty("URL")
public String getURL() {
return uRL;
}
@JsonProperty("URL")
public void setURL(String uRL) {
this.uRL = uRL;
}
@JsonProperty("sites")
public List < Site > getSites() {
return sites;
}
@JsonProperty("sites")
public void setSites(List < Site > sites) {
this.sites = sites;
}
}
网站模型:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"details",
"details2",
"details3"
})
public class Site {
@JsonProperty("details")
private String details;
@JsonProperty("details2")
private String details2;
@JsonProperty("details3")
private List < Details3 > details3 = null;
@JsonProperty("details")
public String getDetails() {
return details;
}
@JsonProperty("details")
public void setDetails(String details) {
this.details = details;
}
@JsonProperty("details2")
public String getDetails2() {
return details2;
}
@JsonProperty("details2")
public void setDetails2(String details2) {
this.details2 = details2;
}
@JsonProperty("details3")
public List < Details3 > getDetails3() {
return details3;
}
@JsonProperty("details3")
public void setDetails3(List < Details3 > details3) {
this.details3 = details3;
}
详情型号:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"moreDetails",
"moreDetails2"
})
public class Details3 {
@JsonProperty("moreDetails")
private String moreDetails;
@JsonProperty("moreDetails2")
private String moreDetails2;
@JsonProperty("moreDetails")
public String getMoreDetails() {
return moreDetails;
}
@JsonProperty("moreDetails")
public void setMoreDetails(String moreDetails) {
this.moreDetails = moreDetails;
}
@JsonProperty("moreDetails2")
public String getMoreDetails2() {
return moreDetails2;
}
@JsonProperty("moreDetails2")
public void setMoreDetails2(String moreDetails2) {
this.moreDetails2 = moreDetails2;
}
}
支架型号:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"results"
})
public class Holder {
@JsonProperty("results")
private Results results;
@JsonProperty("results")
public Results getResults() {
return results;
}
@JsonProperty("results")
public void setResults(Results results) {
this.results = results;
}
}
然后您可以将 Holder
模型作为响应传递
我有以下响应结构。
{
"URL": "",
"sites": [
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": "",
}
]
},
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": "",
}
]
}
]
}
这是通过拥有多个模型来实现的。
SitesResponse
Sites
Details
MoreDetails
它们都有 getter 和设置器,我只是在控制器中设置了响应。有没有办法在不重写层次结构的情况下将所有响应移动到父对象?
举个例子,像这样:
{
"results": {
"URL": "",
"sites": [
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": ""
}
]
},
{
"details": "",
"details2": "",
"details3": [
{
"moreDetails": "",
"moreDetails2": ""
}
]
}
]
}
}
您必须将它们放入另一个对象中,如下所示:
结果模型:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"URL",
"sites"
})
public class Results {
@JsonProperty("URL")
private String uRL;
@JsonProperty("sites")
private List < Site > sites = null;
@JsonProperty("URL")
public String getURL() {
return uRL;
}
@JsonProperty("URL")
public void setURL(String uRL) {
this.uRL = uRL;
}
@JsonProperty("sites")
public List < Site > getSites() {
return sites;
}
@JsonProperty("sites")
public void setSites(List < Site > sites) {
this.sites = sites;
}
}
网站模型:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"details",
"details2",
"details3"
})
public class Site {
@JsonProperty("details")
private String details;
@JsonProperty("details2")
private String details2;
@JsonProperty("details3")
private List < Details3 > details3 = null;
@JsonProperty("details")
public String getDetails() {
return details;
}
@JsonProperty("details")
public void setDetails(String details) {
this.details = details;
}
@JsonProperty("details2")
public String getDetails2() {
return details2;
}
@JsonProperty("details2")
public void setDetails2(String details2) {
this.details2 = details2;
}
@JsonProperty("details3")
public List < Details3 > getDetails3() {
return details3;
}
@JsonProperty("details3")
public void setDetails3(List < Details3 > details3) {
this.details3 = details3;
}
详情型号:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"moreDetails",
"moreDetails2"
})
public class Details3 {
@JsonProperty("moreDetails")
private String moreDetails;
@JsonProperty("moreDetails2")
private String moreDetails2;
@JsonProperty("moreDetails")
public String getMoreDetails() {
return moreDetails;
}
@JsonProperty("moreDetails")
public void setMoreDetails(String moreDetails) {
this.moreDetails = moreDetails;
}
@JsonProperty("moreDetails2")
public String getMoreDetails2() {
return moreDetails2;
}
@JsonProperty("moreDetails2")
public void setMoreDetails2(String moreDetails2) {
this.moreDetails2 = moreDetails2;
}
}
支架型号:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"results"
})
public class Holder {
@JsonProperty("results")
private Results results;
@JsonProperty("results")
public Results getResults() {
return results;
}
@JsonProperty("results")
public void setResults(Results results) {
this.results = results;
}
}
然后您可以将 Holder
模型作为响应传递