@JsonInclude (JsonInclude.Include.NON_EMPTY) не работает, когда я использую класс-оболочку и возвращаю результат - PullRequest
0 голосов
/ 01 апреля 2020

Мой код контроллера -

public TestClass<DtoV1> getAllAlliance(@RequestHeader(ID_HEADER) String id,Pageable pageable,                               PagedResourcesAssembler pagedResourcesAssembler)
    {

        Page<DtoV1> pageResource  = serviceV1.findPagedPrefixesById(pageable, id);
        PagedResources<DtoV1> pagedResources = pagedResourcesAssembler.toResource(pageResource);
        TestClass<DtoV1> testClass = new TestClass<>(pageResource.getContent(),pagedResources.getLinks());
        return testClass;
    }

Мой обертка TestClass -

enter code herepublic class TestClass<T> {


public String name;
public Collection<T> content;
public List<Link> links;
public String[] st= new String[0];
public TestClass(Collection<T> content,List<Link> links)
{
    this.content = content;
    this.name="sunil";
    this.links = links;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonProperty("_name")
public String getName()
{
    return this.name;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonProperty("_st")
public String[] getSt() {
    return st;
}

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonProperty("_embedded")
public Collection<T> getContent()
{
    return this.content;
}

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonProperty("_links")
public List<Link> getLinks() {
    return this.links;
}}

Мой результат -

{
    "_name": "sunil",
    "_embedded": [
        {
            "key": "0000435",
            "type": "Test",
            "issuing": "temp",
            "issued": "temp",
            "dateIssued": "1989-10-22",
            "links": []
        }],
    "_links": [
        {
            "rel": "first",
            "href": "http://localhost:8080/v1?page=0&size=20",
            "hreflang": null,
            "media": null,
            "title": null,
            "type": null,
            "deprecation": null
        }]
}

Если вы видите, я создал строка пустого массива st в тестовом классе он не приходит, но почему приходят остальные

Ожидаемые нулевые и пустые значения не будут приходить при использовании @ JsonInclude (JsonInclude.Include.NON_EMPTY)

1 Ответ

0 голосов
/ 01 апреля 2020

Проблема в объекте с тремя сторонами. Поэтому, если go с концепцией, я считаю, что мы не можем игнорировать нулевые или пустые объекты других классов, если они не содержат игнорируемых нулевых аннотаций

Чтобы сделать это, мы можем использовать mixin с objectmapper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...