POJO与JSON结构不匹配时的Jackson反序列化

POJO与JSON结构不匹配时的Jackson反序列化,json,jersey,jackson,Json,Jersey,Jackson,我有一些建议: { key: "CORE-19", fields: { summary: "iblah" } } 我想把它打包成一个POJO,看起来更像: @JsonIgnoreProperties(ignoreUnknown=true) public class JiraIssue { private String mKey; private String mSummary; public String getKey(){ return(mKey);}

我有一些建议:

{
  key: "CORE-19",
  fields: { summary: "iblah" }
}
我想把它打包成一个POJO,看起来更像:

@JsonIgnoreProperties(ignoreUnknown=true)
public class JiraIssue
{
    private String mKey;
    private String mSummary;

    public String getKey(){ return(mKey);}
    public void setKey(String inKey){mKey = inKey;}
    public String getSummary(){return(mSummary);}
    public void setSummary(String summary){  mSummary = summary; }
}
所以基本上我不想创建一个“Fields”对象,因为它对于我的需要来说有点多余。然而,在Jackson中我真的看不到任何方式来告诉它“摘要”属性实际上来自“字段”属性。这可能吗

这个类的序列化并不重要,它将只用于反序列化。我无法控制JSON格式,因为它来自外部源(以上只是一个片段)。我也在用杰克逊的球衣

谢谢

试试看:

@JsonProperty("fields.summary")
private String mSummary;
实际上,这种结构变化是有可能发生的。到目前为止,在不修改类的情况下,仅使用注释是无法轻松做到这一点的。您可以通过添加以下方法将“fields”属性作为“false”属性处理:

public void setFields(Map<String, String> fields) {
    setSummary(fields.get("summary"));
}
public void设置字段(映射字段){
setSummary(fields.get(“summary”);
}

这样你就可以自己“打开”房子了。

你不能对杰克逊这样做。谢谢你!很高兴知道不是我错过了什么。