Usando jackson 2.1, como desativo o fail_on_empty beans
que a mensagem de erro parece querer que eu desative?
Presumo que seja a coisa mais simples do mundo, mas, droga, é tarde e não consegui encontrar um tutorial simples ou algo particularmente óbvio no api
. SerializationFactory
? Por que eles tornariam isso tão pouco intuitivo e, em seguida, fariam a mensagem de erro parecer tão direta?
Apesar de eu fazer , como a mensagem de erro, quero dizer, é melhor do que um NPE.
Presumo que haja uma maneira de fazer isso usando anotações - mas não estou interessado em usá-las para o trabalho simplista que estou fazendo!
@JsonSerialize
desabilitarFAIL_ON_EMPTY_BEANS
na declaração de classe?Se estiver usando Spring Boot, você pode definir a seguinte propriedade no arquivo application.properties. spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false
fonte
Você também pode ter o mesmo problema se sua classe não contiver nenhum método / propriedade pública. Eu normalmente dedico DTOs para solicitações e respostas de API, declarado público, mas esqueci em um caso de tornar os métodos públicos também - o que causou o bean "vazio" em primeiro lugar.
fonte
Você também pode provavelmente anotar a classe com
@JsonIgnoreProperties(ignoreUnknown=true)
para ignorar os campos indefinidos na classefonte
Se você deseja obter o objeto JSON sem campos extras - adicione esta anotação à sua classe, funcionou perfeitamente para mim.
Você também pode adicionar em seu arquivo application.properties esta linha, mas irá adicionar um campo extra ao seu JSON.
fonte
Se você usar org.codehaus.jackson.map.ObjectMapper, então, pls. use as seguintes linhas
fonte
Em Jersey Rest Services, basta usar a anotação JacksonFeatures ...
fonte
No meu caso, deixei de escrever a anotação @JsonProperty em um dos campos que estava causando este erro.
fonte
Adicionando uma solução aqui para um problema diferente, mas que se manifesta com o mesmo erro ... Tome cuidado ao construir json dinamicamente (como respostas de api ou qualquer outra) para escapar de aspas duplas literais em seus membros de string. Você pode estar consumindo seu próprio json malformado.
fonte
Para corrigir este problema, configure sua classe JsonDataFormat como abaixo
que é quase equivalente a,
fonte
Oi,
Quando eu uso
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
Meus valores de objeto json vêm '' em branco no significado da página angular em resposta
Resolvido apenas com a ajuda das configurações abaixo
fonte
No meu caso, não precisei desativá-lo, em vez disso, tive que colocar este código no topo da minha classe: (e isso resolveu meu problema)
fonte