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

したがって、基本的には「フィールド」オブジェクトを作成したくありません。これは、私のニーズには少し余分だからです。しかし、Jackson には、'summary' プロパティが実際には 'fields' プロパティから来ていることを伝える方法がまったくわかりません。これは可能ですか?

このクラスのシリアル化は問題ではなく、逆シリアル化にのみ使用されます。外部ソースからのものであるため、JSON 形式を制御することはできません (上記は単なるスニペットです)。また、私は実際にJerseyでJacksonを使用しています。

ありがとう!

4

2 に答える 2

1

この種の構造変化については、実際には未解決の問題があります。クラスを変更せずにアノテーションのみで簡単にそれを行う方法は今のところありません。代わりにできることは、次のメソッドを追加して、「fields」プロパティを「false」プロパティとして処理することです。

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 に答える