我第一次遇到ObjectMapper与string.class一起使用,我尝试将json作为string提供,得到了JSONMappingException。你能帮我理解一下为什么吗?
public static void main(String args[]) throws JsonParseException, JsonMappingException, IOException{
String response="{\"response\":\"success\"}";
ObjectMapper objectMapper = new ObjectMapper();
Object object = objectMapper.readValue(response, String.class);
System.out.println(object);
}
答复:
线程“Main”Com.FasterXml.Jackson.DataBind.JsonMappingException异常:无法反序列化位于[Source:{“Response”:“Success”}处的START_OBJECT令牌;行:1,列:1]位于Com.FasterXml.Jackson.DataBind.JsonMappingException.From(JsonMappingException.270)位于Com.FasterXml.Jackson.DataBind.DeserializationContext.ReportMappingException(DeserializationContext.java:1234)位于apper.java:2858)
在一次试验中,当我将响应传递为“成功”时,我会得到:
线程“main”com.fasterxml.jackson.core.JSONParseException中出现异常:无法识别的标记“success”:应为('true'、'false'或'null')
正确的做法是将其读作树:
ObjectMapper om = new ObjectMapper();
JsonNode tree = om.readTree("{\"response\":\"success\"}");
String response = tree.get("response").asText();
System.out.println(response);
输出:成功
例外情况: 套接字处理程序 我相信当JSON被解析为WorkstationRequest对象时会出现异常,原因是下面的项。这是套接字处理程序: 我不知道如何开始调试它。堆栈跟踪从未触及我的应用程序。我正在使用部署我的.jar,并使用执行它
我编写了一个微服务来对API进行HTTP调用。代码如下所示。 当我使用构建它时,它运行得非常完美。然而,当我将其作为SpringBoot应用程序运行时,我会得到以下错误:
如下所示 但是在执行它时,我遇到了以下错误,当它是JSON中的JSON时,我很小心地创建了一个新类,就像在usagenlu中一样
我尝试声明为String或List,但没有成功。知道吗? }
我有一个JSON: 和DTO: 由于json对象中的数据字段实际上是一个对象,但在我的DTO中它是一个字符串,所以我得到了一个异常: 我可以做什么来成功执行这样的反序列化?
问题内容: 我正在尝试发布自定义对象。我在请求正文中的JSON是这样的: 处理请求的服务器端代码: 实体: 但是抛出一个异常: 问题答案: 问题是JSON-默认情况下不能反序列化为,因为它实际上不是JSON数组-看起来像这样: 由于你没有控制反序列化的确切过程(RestEasy确实如此)- 第一个选择是简单地将JSON作为a注入String,然后控制反序列化过程: 你不必自己进行操作便会失去一些便