我想剔除序列化的一些默認屬性。我有以下類龍目島生成器和傑克遜默認值
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
@JsonInclude(Include.NON_DEFAULT)
@Builder
public class RunTime
{
@JsonProperty
@Builder.Default
private String mystring = "any";
@JsonProperty
@Builder.Default
private Boolean myboolean = true;
@JsonProperty
@JsonInclude(Include.ALWAYS)
@Builder.Default
private Boolean always = true;
}
此外,我寫了這個測試:
@Test
public void test() throws JsonProcessingException
{
RunTime rac = RunTime.builder().build();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rac);
assertThat(json).doesNotContain("mystring");
assertThat(json).doesNotContain("myboolean");
assertThat(json).contains("always");
}
我只希望包括在JSON字符串布爾always
財產。不幸的是,由於每個屬性都包含在內,因此測試失敗。不過,我注意到,當我移除龍目島構建器並由我自己實例化對象時,所有這些工作都正常。我如何才能與龍目島合作?