小编SUM*_*MIT的帖子

Jackson解析异常 - (尽管至少存在一个Creator):没有String-argument构造函数/工厂方法从String值反序列化

  • Spring Boot版本:1.5.10
  • 杰克逊版本:2.9.5
  • 龙目岛版本:1.18.0

我有一个场景,我使用kafka发送有效负载.在收到该有效载荷时,我试图断言接收器和发送器端的有效载荷是否相同.

首先,我创建了一个将作为有效负载传递的类.该课程的结构如下.使用的lombok插件版本是1.18.0.

@Builder
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyDummyClass implements Serializable{

    private static final long serialVersionUID = -4181985100899233094L;
    private String data;
    private String id;
}
Run Code Online (Sandbox Code Playgroud)

对于上面的pojo,我创建了一个单元测试,我传递一个字符串并尝试将其从String转换为对象,该工作没有任何问题.

@Test
public void shouldBeAbleToConvertStringToDesiredObjectType() throws IOException {
    String s = "{\r\n  \"data\" : \"foo\",\r\n  \"id\" : \"xyz\"\r\n}";
    MyDummyClass myDummyClass = convertValue(s, MyDummyClass.class);
    assertThat(myDummyClass.getData(), is("foo"));
}
Run Code Online (Sandbox Code Playgroud)

杰克逊映射器配置也在下面给出.

private static final ObjectMapper mapper = new ObjectMapper();

static {
    mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
    mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    mapper.disable(FAIL_ON_UNKNOWN_PROPERTIES);
    mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
    mapper.enable(ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, …
Run Code Online (Sandbox Code Playgroud)

java parsing json jackson jackson-databind

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

jackson ×1

jackson-databind ×1

java ×1

json ×1

parsing ×1