2016-05-04 34 views
0

jsonからすべてのnull値を削除しようとしています。私が使用しているjacksonを使用してjsonからnull値を削除します。

{ 
    "key" : null 
} 

:私が欲しい

{ 
    "key" : [] 
} 

ObjectMapper mapper = new ObjectMapper(); 
mapper.setSerializationInclusion(Include.NON_NULL); 

をここで "キー" がリストであると私は上記のシリアル化オプションを使用するときに、JSONはに変換されますjsonは次のようになります。

{ 
} 

d私は空のリストと0大切なキーを表示する必要が私のプロジェクト内の他のJSONを持っているよう

Include.NON_EMPTY 

を使用したいon't。 null値のキーをリストのときに削除する方法はありますか?文字列の値と同じ方法ですか?

jaxbを使用してxmlからクラスファイルを生成しているため、アノテーションを使用できません。クラス構造:

public class C1 { 

protected List<C2> key; 

public List<C2> getKey() { 
    if (key == null) { 
     key = new ArrayList<C2>(); 
    } 
    return this.key; 
} 

} 

私はしばらくの間立ち往生しています。どんな助けも高く評価されます。前もって感謝します。 null値を持つプロパティをシリアル化抑制する

+0

あなたはクラスの上に注釈を使用して試してみましたか? @ user145078 –

+0

私たちのプロダクション環境では、xmlをpojoに変換するためにjaxbを使用していますので、作成されたJavaファイルを制御できず、アノテーションを使用することはできません。 – user145078

+0

次に、 'key'を避けるカスタムNullSerializerを記述します。直列化されたオブジェクト。 @User –

答えて

4

あなたがこれを使用して直接ObjectMapperを設定することができます。

mapper.setSerializationInclusion(Include.NON_NULL); 
+0

これは私がやったことです。しかし、リストの値の場合は、nullを[]に変換します。私はjson自体からそのキーを削除したい。それを行う方法はありますか? – user145078

関連する問題