【发布时间】:2019-01-08 22:16:12
【问题描述】:
我已经使用带有构建器模式的 lombok 构造了一个 Java 对象。但是,在尝试使用 Jackson 反序列化 Java 对象时出现以下异常。这发生在具有 @JsonProperty 注释的字段上。
线程“main”com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException 中的异常:无法识别的字段“user_name”(User$UserBuilder 类),未标记为可忽略(2 个已知属性:“userName”、“userId”] )
在 [Source: (String)"{"userId":1,"user_name":"username"}";行:1,列:26](通过引用链:User$UserBuilder["user_name"])
使用的代码:
public class TestJson {
public static void main(String args[]) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
User user = User.builder()
.userName("username")
.userId(1)
.build();
System.out.println(user);
String string = objectMapper.writeValueAsString(user);
System.out.println(string);
user = objectMapper.readValue(string, User.class);
System.out.println(user);
}
}
@JsonDeserialize(builder = User.UserBuilder.class)
@Getter
@ToString
@Builder(toBuilder = true)
class User {
@JsonProperty("user_name")
@NonNull
private String userName;
@JsonProperty
private int userId;
@JsonPOJOBuilder(withPrefix = "")
public static class UserBuilder {
}
}
请帮我解决这个问题。
谢谢。
【问题讨论】:
标签: java jackson pojo lombok jackson-databind