9

Jackson ObjectMapperを使用して Java オブジェクトツリーから JSON を構築しています。Java オブジェクトの一部はコレクションであり、空である場合があります。したがって、それらが空の場合、ObjectMapper は私を生成します:"attributes": [],そして、そのような空の JSON 配列を結果から除外したいと思います。私の現在の ObjectMapper 設定:

SerializationConfig config = objectMapper.getSerializationConfig();
config.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
config.set(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);

この投稿から、私が使用できることを読みました:

config.setSerializationInclusion(JsonSerialize.Inclusion.NON_DEFAULT);

しかし、それは私にエラーを生成しています:

Caused by: java.lang.IllegalArgumentException: Class com.mycomp.assessments.evaluation.EvaluationImpl$1 has no default constructor; can not instantiate default bean value to support 'properties=JsonSerialize.Inclusion.NON_DEFAULT' annotation.

では、これらの空の配列が結果に表示されないようにするにはどうすればよいでしょうか?

4

2 に答える 2

16

以下を使用する必要があります。

config.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);

ジャクソン1または

config.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

ジャクソン 2

于 2013-02-06T10:15:59.103 に答える