Lor*_*ius 4 java json jackson dropwizard
我有一个输入JSON,其中包含我确定里面的字段。但是,我需要灵活地添加几个额外的字段。我不知道其他字段的名称,但是我必须处理它。
我在考虑添加一个MaP字段,其中包含所有其他字段,但是输入未映射到该字段。
我想在Dropwizard端点中反序列化JSON。
有没有办法和杰克逊有关?
例:
JSON有效负载1:
{
  "first_name": "John",
  "last_name": "Doe",
  "date_of_birth": "01/01/1990",
  "postcode": "1234"
}
JSON有效负载2:
{
  "first_name": "Alice",
  "last_name": "Havee",
  "phone_no": 012345678,
  "passport_no": "AB 123456"
}
稍后,JSON有效负载3甚至可以具有不同的字段。
Java DTO:
public class PersonDTO {
    // mandatory field
    private String firstName;
    // mandatory field
    private String lastName;
    // Unknown optional fields?
    // No args constructor
    // Getters
    // Setters
}
您可以使用JsonAnySetter注释:
class PersonDTO {
    @JsonProperty("first_name")
    private String firstName;
    @JsonProperty("last_name")
    private String lastName;
    private Map<String, String> extras = new HashMap<>();
    @JsonAnySetter
    public void setExtras(String name, String value) {
        this.extras.put(name, value);
    }
    // No args constructor
    // Getters
    // Setters
}
也可以看看:
| 归档时间: | 
 | 
| 查看次数: | 169 次 | 
| 最近记录: |