0

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に が存在しない場合、オブジェクトrestFBResponseactionsフィールドはpostになりnullます。そして、アクションにアクセスして新しい要素を追加しようとすると、次のようになります。

post.getActions().add(element)

それはエラーになります:

Exception in thread "main" java.lang.NullPointerException

ArrayList<Action>代わりに、いつでもactionsが存在しないままにしておきたいのですrestFBResponse。つまり、フィールドが null の場合は書き込みを避けてくださいnull

どうすればこれを達成できますか?

すべてのクラスを使用@JsonWriteNullProperties(false)してみましたが、結果は同じです。つまり、オブジェクトに存在しない要素には、restFBResponseオブジェクトに対応する null エントリがありpostます。

4

0 に答える 0