public class ModelDTO implements Serializable {
private Long id;
private String datasetName;
@JsonRawValue
private String json;
}
如果我发送下面的正文,Post API在postman或swagger上工作正常。
{
"id": 1,
"datasetName": "Insurance",
"json" : "[{\"ClassName\":\"AAAA\",\"Fields\":[[\"cdsa\",\"csa\"],[\"ca\"]]},{\"ClassName\":\"ca\",\"Fields\":[null]}]"
}
但是MockMVC测试用例在Spring Boot项目中给出了以下错误
错误请求:JSON解析错误:意外字符('C'(代码67)):期望逗号分隔Object条目;嵌套异常com.fasterxml.jackson.core.JsonParseException:意外字符('C'(代码67)):期望逗号分隔Object条目[来源:(PushbackInputStream);第1行,第89列]
mockMvc.perform(post(ENTITY_API_URL).contentType(MediaType.APPLICATION_JSON).content(new ObjectMapper().writeValueAsString(ModelDTO))).andExpect(status().isCreated());
在我的例子中,我的类型定义不正确。例如
public class ModelDTO implements Serializable {
private Long id;
private String datasetName;
private String part;
}
所以我不得不纠正它:
public class ModelDTO implements Serializable {
private Long id;
private String datasetName;
private List<String> part;
}
这解决了我的问题。
我的 json 设置不正确。它需要反义词斜杠进行解析。我已经添加了额外的两个反义词斜杠,如'\',现在它正在工作。
private static final String DEFAULT_JSON = "\"[{\\\"ClassName\\\":\\\"Health Aditya Birla\\\",\\\"Fields\\\":[[\\\"Insured Person's Details\\\",\\\"Gender\\\",\\\"Member ID\\\"],[\\\"Policy Details\\\",\\\"Insured Person's Details\\\"],[\\\"Premium Certificate\\\"]]},{\\\"ClassName\\\":\\\"Health Care\\\",\\\"Fields\\\":[[\\\"Details of Insured\\\",\\\"Relationship\\\",\\\"Date Of Birth\\\"],[\\\"Mobile No\\\"],[\\\"Gross Premium\\\",\\\"Goods & Services Tax\\\"]]}]\"";
为了解决这个问题,我引用了以下链接。
在此处输入链接描述
我相信你实际上并不需要@JsonRawValue
所以试着删除它:
public class ModelDTO implements Serializable {
private Long id;
private String datasetName;
private String json;
}
使用Spring1.5.8释放Jackson mapper,给出以下异常。 在[源:未知;行:-1,列:-1](通过引用链:com.copart.conversationapi.CallDisposition.model.vo.CallLogEntity[“CallEndTime”]) Callentity.java java pom.xml
我使用的是带有Rest控制器的spring boot。我有一个@PostMapping,Requestbody的对象id类型为UUID。当我试图测试邮递员的邮件请求时,我得到以下错误。 “JSON分析错误:无法从字符串中反序列化类型的值\”4BE4BD08CFDF407484F6A04131790949\“:UUID必须用标准36字符表示形式表示;嵌套异常为com.fasterxml.jackso
由于以下异常,我无法反序列化Java-8-locatedate JSON分析错误:无法从字符串“15/09/1978”反序列化< code>java.time.LocalDate类型的值:无法反序列化Java . time . local date(Java . time . format。无法在索引0处分析DateTimeParseException)文本“15/09/1978”; 包含Date
我有一门课是这样的: 但是当我试图序列化它时,我收到一个错误,上面写着“试图序列化java.lang.class:java.lang.字符串。忘记注册一个类型适配器了吗?”。所以我创建了这个适配器: } 并登记如下: 但我还是犯了同样的错误<我做错了什么 适配器的实现看起来正常吗?
我有一个spring boot应用程序,通过gradle插件生成一个java客户端: 我选择了作为,因为这似乎是使用java1.8的项目的首选。 对于生成的客户端,我正在执行一个请求,该请求返回一个包含时间戳的对象。我得到以下错误: 有关类的相关部分: 这两种setter方法都接受对象,并且没有注释,因此转换必须在别处进行。输入字符串也是“2020-07-21T12:12:23.000 0200”
问题内容: 我正在尝试将json数据反序列化为模型类,但是失败了。这是我的工作: 这是我的模型的样子: 您可以看到我到达这里的Json:http : //api.worldbank.org/incomeLevels/LIC/countries? format=json 这是我得到的错误: 无法将JSON数组反序列化为“ Mvc4AsyncSample.Models.CountryModel”类型。