FasterXML中的UnrecognizedPropertyException

问题描述

当我使用fastXML将字符串"{"name":"John","timestamp":"2020-08-14T11:47:52.297194Z"}"转换为POJO时,我读取了以下异常,

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "timestamp" (class com.job.model.Person),not marked as ignorable (2 kNown properties:  "name","timeStamp"])

我的POJO是


@Data
@NoArgsConstructor
@Table(keyspace = "keyspace",name = "testTable")
public class Person implements Serializable {

    private static final long serialVersionUID = 1L;

  
    @Column(name = "name")
    private String name;


    @Column(name = "timeStamp")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "UTC") // Tried with this no luck.
    private Instant timeStamp; 

}

我从下面的网址中添加了所需的依赖项,

https://github.com/FasterXML/jackson-modules-java8,还有

 <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-databind</artifactId>
           <version>2.11.0</version>
       </dependency>
ObjectMapper objectMapper = JsonMapper.builder()
            .addModule(new ParameterNamesModule())
            .addModule(new Jdk8Module())
            .addModule(new JavaTimeModule())
            .build();

注册

解决方法

Json有timestamp,而pojo有timeStamp。在pojo中重命名或使用@JsonProperty("timestamp")

@JsonProperty("timestamp")
private Instant timeStamp;