0

我有一些 json :

{
  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; }
}

所以基本上我不想创建一个“字段”对象,因为它对我的需求来说有点多余。但是,我真的看不出杰克逊有任何方法可以告诉它“摘要”属性实际上来自“字段”属性。这可能吗?

这个类的序列化不是问题,它只会用于反序列化。我无法控制 JSON 格式,因为它来自外部源(以上只是一个片段)。此外,我实际上将杰克逊与泽西岛一起使用。

谢谢!

4

2 回答 2

1

这种结构性变化实际上存在一个悬而未决的问题。目前还没有办法在不修改类的情况下仅使用注释轻松做到这一点。您可以做的是将“字段”属性作为“假”属性处理,方法是添加以下方法:

public void setFields(Map<String, String> fields) {
    setSummary(fields.get("summary"));
}

这样你就可以自己“解开”财产了。

于 2013-03-28T14:24:24.910 回答
0

尝试:

@JsonProperty("fields.summary")
private String mSummary;
于 2013-03-28T09:18:24.673 回答