首页 > 解决方案 > 在请求有效负载中设置字符串列表

问题描述

我需要在 REST API 中传递这个请求有效负载。对于下面的数据列表数组,我需要将其设置为请求,即使我没有像常量字符串列表那样从客户端获取。

这些是我的java类,任何人都可以帮助我在哪里设置它

{
"ph":"2019201234",
"customerId":"3504241",
"data":[
    "./ManagedObjects/Phone/Manufacturer",
    "./ManagedObjects/**something",
    "./ManagedObjects/**something",

    ]

}

控制器:

@PostMapping(Constants.Endpoints.**)
public ShowParametersResponse getParams(@RequestBody  ShowParametersRequest showParametersRequest) {
    log.info("Got request as : " + showParametersRequest);
    returnMapper.getParams(showParametersRequest);
}

映射器类:

public ShowParametersResponse getParams(ShowParametersRequest showParametersRequest) {
    log.info("Fetching data from wireless");
    ShowParametersResponse showParametersResponse  = Service.getParams(showParametersRequest);
    log.info("Fetched data/ mapping done.");
    return showParametersResponse;
}

服务等级:

public ShowParametersResponse  getParams(ShowParametersRequest showParametersRequest) {

    ResponseEntity<ShowParametersResponse> res = restTemplate.postForEntity(
            properties.getEndpoint() + Constants.Endpoints.***, showParametersRequest,
            ShowParametersResponse.class);
    log.info(res.getBody().toString());
    return res.getBody();
}

请求类:

public class ShowParametersRequest {
    @JsonProperty("ph")
    private String ph;
    @JsonProperty("customerId")
    private String customerId;
    @JsonProperty("data")
    private List<String> data = null;

    @JsonProperty("ph")
    public String getPh() {
        return ph;
    }

    @JsonProperty("ph")
    public void setPh(String ph) {
        this.ph = ph;
    }

    @JsonProperty("customerId")
    public String getCustomerId() {
        return customerId;
    }

    @JsonProperty("customerId")
    public void setCustomerId(String customerId) {
        this.imei = customerId;
    }

    @JsonProperty("data")
    public List<String> getData() {
        return data;
    }

    @JsonProperty("data")
    public void setData(List<String> data) {
        this.data = data;
    }
}

标签: javaspringrestspring-bootarraylist

解决方案


设置如下列表,您可以从客户端检查列表是否为空,然后可以根据您的要求添加它

List<String> constStringList = Arrays.asList("./ManagedObjects/Phone/Manufacturer",
                "./ManagedObjects/**something",
                "./ManagedObjects/**something");

@PostMapping(Constants.Endpoints.**)
public ShowParametersResponse getParams(@RequestBody  ShowParametersRequest showParametersRequest) {

     List<String> constStringList = Arrays.asList("./ManagedObjects/Phone/Manufacturer",
                    "./ManagedObjects/**something",
                    "./ManagedObjects/**something");    

    showParametersRequest.setData(constStringList);  
    log.info("Got request as : " + showParametersRequest);
    returnMapper.getParams(showParametersRequest);
}

推荐阅读