Однако десериализация не спускается с ошибкой, аналогичной: < /p>
Код: Выделить всё
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Conflicting setter definitions for property "defaultPropertyInclusion": com.fasterxml.jackson.databind.ObjectMapper#setDefaultPropertyInclusion(com.fasterxml.jackson.annotation.JsonInclude$Value) vs com.fasterxml.jackson.databind.ObjectMapper#setDefaultPropertyInclusion(com.fasterxml.jackson.annotation.JsonInclude$Include)
Ниже приведен простой тест, показывающий мой вариант использования с 3 простыми классами:
@JsonTest
class FooTest {
@Autowired
private JacksonTester tester;
@Autowired
private JacksonTester tester2;
@Test
void foo() throws Exception {
// Arrange
// Act
final var target = tester.parseObject("""
{
"bar": "baz",
"baz": {
"other": "qux"
}
}
""");
// Assert
assertThat(target.bar()).isEqualTo("baz");
assertThat(target.baz().other()).isEqualTo("qux");
}
@Test
void foobar() throws Exception {
// Arrange
// Act
final var target = tester2.parseObject("""
{
"bar": "baz",
"baz": "{\\"bar\\": \\"qux\\"}"
}
""");
// Assert
assertThat(target.bar()).isEqualTo("baz");
assertThat(target.baz().other()).isEqualTo("qux");
}
record Foo(String bar, Bar baz) {}
record Bar(String other) {}
record Foobar(String bar, Bar baz) {
@JsonCreator
public static Foobar fromJson(String bar, String baz, @JacksonInject ObjectMapper mapper)
throws JsonProcessingException {
final var barObj = mapper.readValue(baz, Bar.class);
return new Foobar(bar, barObj);
}
}
}
И он получает те же противоречивые определения сеттера ... ошибка.
Я просто пытаюсь сделать что -то, что не поддерживается?
Подробнее здесь: https://stackoverflow.com/questions/797 ... pring-boot