json オブジェクトをFacebook グラフ APIrestFBResponse
のクラスのオブジェクトに変換しようとしています。Post
MyPost post = gson.fromJson(restFBResponse.toString(), MyPost.class);
ここで、MyPost クラスは次のとおりです。
import org.codehaus.jackson.annotate.JsonWriteNullProperties;
@JsonWriteNullProperties(false)
public class MyPost extends Post {
}
クラスにはたくさんのフィールドがありますPost
。これらのフィールドのいずれか (たとえばactions
) が json オブジェクトrestFBResponse
に存在しない場合、オブジェクトの対応するエントリはpost
null になります。しかし classPost
では、アクションは arraylist によって割り当てられます。
List<Action> actions = new ArrayList<Action>();
したがって、actions
に が存在しない場合、オブジェクトrestFBResponse
のactions
フィールドはpost
になりnull
ます。そして、アクションにアクセスして新しい要素を追加しようとすると、次のようになります。
post.getActions().add(element)
それはエラーになります:
Exception in thread "main" java.lang.NullPointerException
ArrayList<Action>
代わりに、いつでもactions
が存在しないままにしておきたいのですrestFBResponse
。つまり、フィールドが null の場合は書き込みを避けてくださいnull
。
どうすればこれを達成できますか?
すべてのクラスを使用@JsonWriteNullProperties(false)
してみましたが、結果は同じです。つまり、オブジェクトに存在しない要素には、restFBResponse
オブジェクトに対応する null エントリがありpost
ます。