我有一个 REST Controller ,我在其中编写了这段代码
@PostMapping(value = "/otp")
public void otp(@RequestBody Integer mobile) {
System.out.println(" Mobile = "+mobile);
}
我使用以下输入从 Postman 调用此方法
URL : localhost:8080/otp
正文
:
{
"mobile":123456
}
但是我得到以下异常
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of java.lang.Integer out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.Integer out of START_OBJECT token
如果我像这样将字符串作为参数
@PostMapping(value = "/otp")
public void otp(@RequestBody String mobile) {
System.out.println(" Mobile = "+mobile);
}
并将输入传递为
{
"mobile":123456
}
现在在控制台打印如下
Mobile = {
"mobile":"123456"
}
但我只想要这个值 123456
。如何实现我的要求?
NOTE: I don't want to create any additional POJO class or even I don't want to send the data using query/path parameter.
最佳答案
如果你想像这样发送你的 body :
{
"mobile":123456
}
您将创建另一个对象来接收该值。
但是如果你只想接受整数值而不接受任何其他对象,你不会将json对象放在请求体中,而只是整数本身。
正文:
12345
关于java - 如何以 JSON 格式发送整数值并在 REST Controller 中接收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53411744/