BeanがJSONにインスタンス化された場合、ある要素のソリューションをインスタンス化したくない場合

2969 ワード

1.エンティティ上
@JsonInclude(Include.NON_NULL) 
//タグを属性上に置く、属性がNULLであればシーケンス化に関与しない//クラス上に置くと、このクラスのすべての属性に//includeが作用する.Include.ALWAYSデフォルト//include.NON_DEFAULT属性はデフォルト値でシーケンス化//include.NON_EMPTY属性が空(「」)またはNULLの場合はシーケンス化されません
//Include.NON_NULL属性がNULLの場合はシーケンス化されません
2.コード上のObjectMapper=new ObjectMapper()
mapper.setSerializationInclusion(Include.NON_NULL);  
//この方法でmapperオブジェクトを設定と、すべてのシーケンス化されたオブジェクトが変更規則に従ってシリーズ化//includeされる.Include.ALWAYSデフォルト//include.NON_DEFAULT属性はデフォルト値でシーケンス化//include.NON_EMPTY属性が空("")またはNULLであるもシーケンス化//includeしない.NON_NULL属性はNULL無シーケンス化User=new User(1,",null);  String outJson = mapper.writeValueAsString(user);  System.out.println(outJson);
注意:VOのみに作用し、MapListは機能しない
たとえばObjectMapper mapper =  new   ObjectMapper(); mapper.setSerializationInclusion(Include.NON_NULL);
  Map map =  new   HashMap(); map.put( "a" null ); map.put( "b" "b" );
  String ret_val = mapper.writeValueAsString(map); System.err.println(ret_val); Map m = mapper.readValue(ret_val, Map. class ); System.err.println(m.get( "a" ) +  "|"   + m.get( "b" )); { "b" : "b" , "a" : null } null |b
VO vo =  new   VO(); vo.setA( null ); vo.setB( "b" );            String ret_val1 = mapper.writeValueAsString(vo); System.err.println(ret_val1); VO v = mapper.readValue(ret_val1, VO. class ); System.err.println(v.getA() +  "|"   + v.getB());
{ "b" : "b" } |b