Я имею в виду этот учебник , чтобы выучить основы Джексона , но сильно упал в это.
Это исключение:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `hello.Car` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: (String)"{"color":"Black","type":"BMW"}"; line: 1, column: 2]
Это класс :
@Builder
@Data
@AllArgsConstructor
public class Car implements Serializable {
private String color;
private String type;
}
А это логика :
@Service
public class HelloService {
public void testJackson() throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String json1 = "{\"color\":\"Black\",\"type\":\"BMW\"}";
Car car1 = objectMapper.readValue(json1, Car.class);
}
}
F.Y.I Я использую Джексон и Ломбок :
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
В чем тут дело. Пожалуйста, поделитесь некоторыми идеями.
ОБНОВЛЕНИЕ 2018-05-10
@ Хемант Патель, спасибо. Просто добавил @NoArgsConstructor
, как по волшебству. Работает как положено. Я посмотрю на это, чтобы узнать, что на самом деле происходит.
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Car implements Serializable {
String color;
String type;
}
Кстати, спасибо @Thomas и @Alex, я проверил эти два поста, но я действительно не думаю, что реальная причина заключается в отношениях с Lombok,