如果我通過一個JSON像傑克遜JSON到Java對象的映射
`{
"entity":{
"name":"xyz",
"age":21
}
}`
話,豈不是強制性的,我POJO
應該有兩個「name
」和「age
」實例變量。我的意思是,如果我只有「名稱」實例字段,映射時是否會有任何異常?
如果我通過一個JSON像傑克遜JSON到Java對象的映射
`{
"entity":{
"name":"xyz",
"age":21
}
}`
話,豈不是強制性的,我POJO
應該有兩個「name
」和「age
」實例變量。我的意思是,如果我只有「名稱」實例字段,映射時是否會有任何異常?
是強制性的,我的POJO應該有兩個「名」和「年齡」的實例變量
如果你的意思是「有」在同一名稱完全相同,則沒有。您可以使用註釋來重命名值。
如果您的意思是類定義「包含」這些值,那麼它也不應該需要它們。這取決於你如何配置ObjectMapper
,但。例如,有an AnyGetter
annotation可以讓你收集「額外的」JSON值。因此,強制字段不是必需的。
如果您的JSON包含POJO中不存在的額外字段,它將引發異常。爲了避免這種情況,您可以使用此批註@JsonIgnoreProperties忽略其他字段。 如果字段名稱不同,則可以使用@jsonProperty在字段getter中進行定義。 (用於反序列化)。用於序列化的 在setter方法上使用註釋。
@JsonIgnoreProperties(ignoreUnknown = true)
class Pojo {
private String name;
@jsonProperty("firstName")
public String getName(){
return this.name;
}
}
你嘗試過嗎? – Jerry06
你有什麼嘗試做得很好? –