Jackson映射:使用不同的属性名称反序列化JSON

Sim*_*mon 3 java json json-deserialization

我有一个返回json字符串的服务器:

{"pId": "ChIJ2Vn0h5wOlR4RsOSteUYYM6g"}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用jackson将其反序列化为一个名为pId的变量的对象,但我不希望该变量被称为pId,我宁愿将其反序列化为placeId.

android java中的当前对象:

public class Place {

    private String pId;

}
Run Code Online (Sandbox Code Playgroud)

我希望对象看起来像什么:

public class Place {

    private String placeId;

}
Run Code Online (Sandbox Code Playgroud)

如果我将对象的变量更改为placeId,则jackson将无法反序列化JSON,因为属性名称不再匹配.

是否有一个jackson注释我可以用来将java对象中的"placeId"变量映射到从服务器返回的JSON字符串变量"pId"?

Dmi*_*aev 7

使用@JsonProperty注释:

public class Place {

    @JsonProperty("pId")
    private String placeId;

}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以看到相关的javadoc.