1

私はクラスを持っています

(免責事項、私はKotlinで書いていますが、より多くの人が読めるようにJavaに翻訳しています)

@JsonIdentityInfo(
    ObjectIdGenerators.PropertyGenerator.class,
    "id"
)
public class Foo implements Serializable {
    public int id;
    public List<Foo> fooList;
}

のリストを含む別のオブジェクトをシリアライズしたいFooのですが、シリアライズされたすべてのエントリをfooListオブジェクトではなく ID にしたいと考えています。頭に浮かんだ 1 つの解決策は、それらが有向非巡回グラフを形成するため、シリアル化の前にトポロジー的に逆の順序で並べ替えることでした。しかし、それは明らかに完璧な解決策ではないので、そのようなことを行うための注釈またはその他のクリーンなジャクソンの方法があるかどうか疑問に思っています。

編集:
Foo のリストを含むクラスは次のようになります。

public class Bar implements Serializable {
    public List<Foo> fooList;
}

Barそして、この JSON からインスタンスを逆シリアル化すると:

{
  "fooList": [
    {
      "id": 0,
      "fooList": [1]
    }, 
    {
      "id": 1,
      "fooList": []
    }
  ]
}

出力を入力と同じにしたいのですが、代わりに次のようにします。

{
  "fooList": [
    {
      "id": 0,
      "fooList": [
        {
          "id": 1,
          "fooList": []
        }
      ]
    },
    1
  ]
}
4

1 に答える 1