将字符串反序列化为对象时遇到错误。
org.opentest4j.MultipleFailuresError:多个失败(2失败)com.fasterxml.jackson.databind.exc.Invalid定义异常:无法构建java.time.LocalDate
的实例(没有Creator,像默认构造一样,存在):没有String-参数构造函数/工厂方法从String值反序列化('2020-05-20')at[来源:(字符串)
JSON
{
"studentId":57,
"JoinedDate":"31-12-2019",
"DOB":"08-06-1998"
}
public class Student{
private long studentId ;
private LocalDate JoinedDate;
private LocalDate DOB ;
public long getStudentId() {
return studentId;
}
public void setStudentId(long studentId) {
this.studentId = studentId;
}
public LocalDate getJoinedDate() {
return JoinedDate;
}
public void setJoinedDate(LocalDate joinedDate) {
JoinedDate = joinedDate;
}
public LocalDate getDOB() {
return DOB;
}
public void setDOB(LocalDate dOB) {
DOB = dOB;
}
单元测试课
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Main.class)
@WebAppConfiguration
public class StudentTest{
private Student student;
private ObjectMapper jsonObjectMapper;
@Before
public void setUp() throws IOException {
jsonObjectMapper = new ObjectMapper();
jsonObjectMapper.setDateFormat(new SimpleDateFormat("dd-MM-yyyy"));
studentJson = IOUtils.toString(getClass().getResourceAsStream(CommonTestConstants.StudentPath+ "/Student.json"));
student = jsonObjectMapper.readValue(studentJson , Student.class);
}
有人请指教
引用无法构造'java'的实例。时间ZoneDateTime`(不存在像默认构造这样的创建者)
无法反序列化-Jackson LocalDate/Time-JUnit
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.11.0</version>
</dependency>
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
完整的代码是:
主类或jUnit:
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
Student student = objectMapper.readValue(YOUR_JSON_STRING, Student.class);
System.out.println(student);
}
学生:
java prettyprint-override">public class Student {
private long studentId;
@JsonProperty("JoinedDate")
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate JoinedDate;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate DOB;
// getters and setters and ToString
}
当我尝试反序列化汽车类时,我得到了下面的错误。杰克逊正试图在父类中的子元素中搜索字段。我如何确保杰克逊使用适当的子类型进行反序列化?我相信我需要使用混合/客户转换器。但我不确定如何在这个特定场景中使用它们。 注意:在我的例子中,除TestMain之外的所有类都在一个jar文件中,我不能修改源文件。 错误 线程"main"中的异常com.fasterxml.jackson.databind.exc.
我遇到了反序列化问题: 这是我的班级: 我要反序列化的JSON是: 我得到以下例外: 我不想补充: 因为我想得到ResObj... 如果我添加注释,它会通过,但会将其设置为null。。这是我不想要的。
我尝试使用一些类似于以下内容的JSON(来自AlphaVantage): 并使用Jackson解析它( 我的股票类如下所示: 相反,我得到了以下错误: 为什么Jackson在连接到我的股票类时遇到问题?如何将JSON中的符号连接到Stock类中的符号? 编辑:如果我将符号更改为小写,我会收到相同的错误消息:
问题内容: 我正在使用Jackson,但遇到问题,当我尝试反序列化对象时,出现以下错误: 我在属性中遇到问题: 有人可以帮我吗? 问题答案: 您不能实例化一个抽象类,杰克逊也不能。您应该为Jackson提供有关如何使用具体类型实例化MyAbstractClass的信息。
我正在尝试使用fasterxml将json应答解析为POJO。但问题是,json回复包含嵌套的对象,其中包含反斜杠,所以在ObjectMapper读取该值时,我收到了com。fasterxml。杰克逊。数据绑定。exc.不匹配计算异常 我不知道如何用fasterxml解析这个对象?! 我的POJO对象模型如下所示: 我收到的原始json消息: “交易/报价/BTC-PLN-BTC-C-C-PLN,
我对jackson进行了配置,以便在和时给出一个简单的字符串表示。这可以在序列化过程中找到,例如,当我在REST API上获得数据时。 但反过来就不行了。当我试图将数据发送到服务器,并且应该将JSON解析为java对象时,会引发此异常: 很抱歉没有提到我在单元测试中。 TestClass: