3

私はそのような(簡略化された)JSON文字列を持っています:

[
  { "id":1, "friends":[2] },
  { "id":2, "friends":[1,3] },
  { "id":3, "friends":[] }
]

友達のコンテンツは、リスト内の他のユーザーのIDです。

Jacksonを使用したデータバインディングだけでJSONから以下のようなJavaクラスを作成することはどういうわけか可能ですか、それともそのための中間ステップが必要ですか?

public class User {
  private long userid;
  private List<User> friends;
// ... getters/setters

ご協力いただきありがとうございます。

4

1 に答える 1

0

これを行うための完全に注釈的な方法はないため、カスタムの JsonSerializer / JsonDeserializer が必要になります。Jackson 1.9 では、役立つ可能性のある2 つの新機能が追加されています。

  • ValueInstantiators。デシリアライザーのコンストラクターを追加して、基本整数から POJO に変換できます。
  • 値の注入により、追加のコンテキスト オブジェクトを渡すことができます (既にデシリアライザー オブジェクトの ID を見つけて、整数からインスタンスにマップする必要があります)。

ただし、特定のユースケースでこれら 2 つの機能を組み合わせる方法は 100% わかりません...

于 2011-10-15T17:24:14.520 に答える