【发布时间】:2022-02-04 09:39:19
【问题描述】:
使用此代码将 Json 转换为使用 Jackson 注释的 Java 对象:
import com.fasterxml.jackson.databind.ObjectMapper;
import objectmappertest.Request;
import java.io.IOException;
public static void main(String args[]) throws IOException {
final String json = "{\"datePurchased\":\"2022-02-03 21:32:017\"},{\"unknownField\":\"test\"}";
final Request request = mapper.readValue(json, Request.class);
System.out.println("request : "+request);
}
我希望抛出异常,因为 Request Java 对象不包含字段类型 unknownField ,相反,Jackson 似乎从 JSON 中解析了它可以解析的内容。如果传递给 Jackson 的 Json 与 Java 对象结构不匹配,是否有配置选项导致异常或设置标志?
这是预期的结构:
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.jackson.Jacksonized;
import java.util.Date;
@Builder
@ToString
@Getter
@Setter
@Jacksonized
public class Request
{
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:sss")
private final Date datePurchased;
}
【问题讨论】: