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に存在しない場合、オブジェクトの対応するエントリはpostnull になります。しかし 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ます。