jackson objectWriter不支持JsonInclude,在ArrayList中包含.NON_EMPTY

y0u0uwnf  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(97)

我试图阻止在使用objectWritter时JSON中出现空列表。
下面是包含字符串列表的对象

public class Request {

    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    List<String> institutionIds;

    public Request(String institutionIds) {
        this.institutionIds = List.of(institutionIds);
    }

    public List<String> getInstitutionIds() {
        return institutionIds;
    }
}

这里是我转换成json的地方

public class ObjectWritterApplication {
    private static final ObjectWriter objectWriter = new ObjectMapper().writerWithDefaultPrettyPrinter();

    public static void main(String[] args) throws JsonProcessingException {
        var request = new Request("");

        var json = objectWriter.writeValueAsString(request);

        System.out.println(json);
    }
}

我的问题是输出包含一个我不想要的空列表。
输出:
{“institutionIds”:[“”] }

rbl8hiat

rbl8hiat1#

代码行 new Request(“”) 创建一个非空列表,其中一个元素是空字符串。因此输出是正确的。
如果你想排除 empty list 和一个只有空元素的 *list * -添加 content 属性。就像这样:

@JsonInclude(value=Include.NON_EMPTY, content=Include.NON_EMPTY)
List<String> institutionIds;

相关问题