我想在下面创建JSON负载
{
"maxResults":3,
"counter":0,
"customerParameters":{
"filters":[
{
"name":"customerId",
"operator":"=",
"value":["hello"]
}
]
},
"dealerParameters":[
{
"name":"club"
},
{
"name":"token"
}
]
}
到目前为止编码:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"maxResults",
"counter",
"customerParameters",
"dealerParameters"
})
public class CustomerModel {
@JsonProperty("maxResults")
private Integer maxResults;
@JsonProperty("counter")
private Integer counter;
@JsonProperty("customerParameters")
private CustomerParameters customerParameters;
@JsonProperty("dealerParameters")
private List<DealerParameter> dealerParameters = null;
@JsonProperty("customerParameters")
public CustomerParameters getCustomerParameters() {
return customerParameters;
}
@JsonProperty("customerParameters")
public void setCustomerParameters(CustomerParameters customerParameters) {
this.customerParameters = customerParameters;
}
@JsonProperty("dealerParameters")
public List<DealerParameter> getDealerParameters() {
return dealerParameters;
}
@JsonProperty("dealerParameters")
public void setDealerParameters(List<DealerParameter> dealerParameters) {
this.dealerParameters = dealerParameters;
}
// Getter/Setter for other params
}
客户参数.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"filters"
})
public class CustomerParameters {
@JsonProperty("filters")
private List<Filter> filters = null;
// Setter and Getter for filters parameter
}
DealerParameters.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name"
})
public class DealerParameter {
@JsonProperty("name")
private String name;
@JsonProperty("name")
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
}
过滤器.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name",
"operator",
"value"
})
public class Filter {
@JsonProperty("name")
private String name;
@JsonProperty("operator")
private String operator;
@JsonProperty("value")
private List<String> value = null;
@JsonProperty("value")
public List<String> getValue() {
return value;
}
@JsonProperty("value")
public void setValue(List<String> value) {
this.value = value;
}
// Setter and Getter for other properties
}
缺少部件:
@Controller
public class TestContoller {
RestTemplate restTemplate;
我应该用下面的新运算符实例化每个pojo类并设置所有必需的参数吗?或者任何其他创建JSON有效负载的方法?
CustomerModel customerModel= new CustomerModel(); customerModel.setMaxResults(1); Filter filter= new Filter(); filter.setName("customerID"); filter.setOperator("-"); filter.setValue(Arrays.asList("club")); CustomerParameters customerParameters = new CustomerParameters(); customerParameters.setFilters(Arrays.asList(filter)); customerModel.setCustomerParameters(customerParameters);
对于DealerParameter类,我想创建多个具有相同键不同值的对象(请参阅我上面提到的json负载(。下面的代码只创建一个对象";name":"dealerId";
DealerParameter dealerParameter = new DealerParameter(); dealerParameter.setName("dealerId"); customerModel.setDealerParameters(dealerParameter); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writeValueAsString(customerModel); restTemplate.exchange(todo); // restful service call
}
您已经在使用">ObjectMapper";,ObjectMapper有readValue((方法。通过使用readValue((方法,您可以一次填充所有数据,如下所示:--
ObjectMapper objectMapper = new ObjectMapper();
//populating data from json string to POJO
CustomerModel customerModel = objectMapper.readValue(<json String>,CustomerModel.class);
System.out.println(objectMapper.writeValueAsString(customerModel); // print all data