java - 没有从字符串值反序列化的字符串参数构造函数/工厂方法('22TP2TT490S')
问题描述
下面是 Rest Controller 类,它是发布请求
@PostMapping(value = "/details")
public SubSeriesDetailsRequest getGlobalSearchProductDetails(@RequestBody List<SubSeriesCodesRequest> codes,
@QueryParam("contextString") String contextString) {
LOGGER.info("Inside post request " + codes);
String url = "http://www.example.com/details";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<Object> entity = new HttpEntity<>(headers);
// SubSeriesDetailsRequest detailsRequest = new SubSeriesDetailsRequest();
SubSeriesDetailsRequest response = restTemplate.postForObject(url, entity, SubSeriesDetailsRequest.class);
return response;
}
我的 dto 课
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true)
公共类 SubSeriesCodesRequest 实现可序列化 {
private static final long serialVersionUID = 6880035785505252493L;
private List<String> codes;
public SubSeriesCodesRequest(List<String> codes) {
super();
this.codes = codes;
}
@JsonCreator
public SubSeriesCodesRequest() {
}
public List<String> getCodes() {
return codes;
}
public void setCodes(List<String> codes) {
this.codes = codes;
}
解决方案
您的请求与预期的模型不匹配。你说你期望 a并且你正在发送List
一个SubSeriesCodesRequest
字符串数组。
您当前的模型似乎是这样的例子:
[
{
"codes": [
"Code 1",
"Code 2"
]
}
]
尝试将您的方法更改为这样的方法public SubSeriesDetailsRequest getGlobalSearchProductDetails(@RequestBody SubSeriesCodesRequest request,
,它应该可以正常工作。
推荐阅读
- c# - 如何成功存储和加载游戏角色的数据?
- javascript - React 被认为是一个库,Angular 被认为是一个框架。为什么这样?
- asp.net-core - Servicestack 未经授权
- python - 如何暂停 OpenCV 视频视频流以获得积分?
- php - 如何在laravel 6中使用`@`作为函数
- powershell - 您可以在 PowerShell 属性中指定单位吗?
- git - Git - 如何将主分支移动到其他分支和头部
- sql-server - System.Data.SqlClient.SqlException 过程没有提供参数和参数。我应该如何解决这个错误?
- algorithm - 前 k 个最大元素插入 O(logn) 和 O(k) 的数据结构
- asynchronous - 如何在 Kotlin 中同步检查和设置变量?