我有一个JSON:
{
"clientId": "1",
"appName": "My Application",
"body": "Message body",
"title": "Title"
"data": {
"key1": "value1",
"key2": "value2"
}
}
和DTO:
@Data
public class PushNotificationDto {
private Long clientId;
private String appName;
private String body;
private String title;
private String data;
}
@RestController
@AllArgsConstructor
public class PushNotificationController {
private PushNotificationService pushNotificationService;
@PostMapping("/push-notification")
void sendPushNotification(@RequestBody PushNotificationDto pushNotification) {
pushNotificationService.send(pushNotification);
}
}
由于json对象中的数据字段实际上是一个对象,但在我的DTO中它是一个字符串,所以我得到了一个异常:
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error:
Can not deserialize instance of java.lang.String out of START_OBJECT token;
nested exception is com.fasterxml.jackson.databind.JsonMappingException:
Can not deserialize instance of java.lang.String out of START_OBJECT token
我可以做什么来成功执行这样的反序列化?
在请求对象中,有一个数据数组
。
"data": {
"key1": "value1",
"key2": "value2"
}
但是在PushNotificationDTo
对象中有字符串数据
。这就是你得到这个错误的原因。要解决此错误,可以将字符串数据
更改为映射
例外情况: 套接字处理程序 我相信当JSON被解析为WorkstationRequest对象时会出现异常,原因是下面的项。这是套接字处理程序: 我不知道如何开始调试它。堆栈跟踪从未触及我的应用程序。我正在使用部署我的.jar,并使用执行它
如下所示 但是在执行它时,我遇到了以下错误,当它是JSON中的JSON时,我很小心地创建了一个新类,就像在usagenlu中一样
我编写了一个微服务来对API进行HTTP调用。代码如下所示。 当我使用构建它时,它运行得非常完美。然而,当我将其作为SpringBoot应用程序运行时,我会得到以下错误:
我第一次遇到ObjectMapper与string.class一起使用,我尝试将json作为string提供,得到了JSONMappingException。你能帮我理解一下为什么吗? 答复: 线程“Main”Com.FasterXml.Jackson.DataBind.JsonMappingException异常:无法反序列化位于[Source:{“Response”:“Success”}处的S
我尝试声明为String或List,但没有成功。知道吗? }
发送帖子后,我收到400错误 响应为: 当我试图反序列化我的json数据时,我得到了一个异常。如何正确地反序列化JSON? 比尔·恩蒂蒂的文件是: BillController类中处理POST请求的控制器 最后,我的支付实体类: