5 回答
TA贡献1848条经验 获得超2个赞
您的VerificationBody课程可能如下所示:
class VerificationBody {
private String prop1;
//other properties & their getters and setter
private Map<String, ? extends Object> otherProps;
// getter setters for otherProps
}
这将使您始终能够收到额外的属性,而不会出现任何扩展问题。
TA贡献1810条经验 获得超4个赞
您可以使用HashMap类似的方法来解决此类问题:
@RequestMapping(value = "/profiles/{profileId}/verify/", headers = "Accept=application/json", method = RequestMethod.POST)
public void verifyBody(@RequestBody HashMap<String, HashMap<String, String>> requestData) {
HashMap<String, String> customerInfo = requestData.get("verificationBody");
String param1 = customerInfo.get("param1");
//TODO now do whatever you want to do.
}
TA贡献1777条经验 获得超10个赞
请求体的注解是@RequestBody。由于请求正文是一个键值对,因此将其声明为 Map 是明智的做法。
@PostMapping("/blog")
public Blog create(@RequestBody Map<String, String> body){...}
要提取相应的键及其值:
String id = body.get("id");
String title = body.get("title");
String content = body.get("content");
尝试使用此链接
https://medium.com/better-programming/building-a-spring-boot-rest-api-part-ii-7ff1e4384b0b
TA贡献1998条经验 获得超6个赞
您可以尝试VerificationBody像这样修改类:
public class VerificationBody {
private String name;
private Long profileId;
// getters & setters
}
getVerificationInformation像这样的类:
@PostMapping(value = "/profiles/{profileId}/verify/",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Response getVerificationInformation (
@RequestBody VerificationBody body) {
TA贡献1806条经验 获得超8个赞
根本原因是您的 JSON 字符串无效,有效的字符串应该如下所示:
{
"name": "Example",
"profileId": "123",
"country": "US"
}
请确保每个键都用双引号引起来,否则在使用Jackson.
顺便说一句,我正在使用 Spring Boot,我可以通过您的代码片段使用无效的JSON 字符串作为负载来重现获取 HTTP 状态代码 400。
添加回答
举报