Articles of jackson

Como analisar uma string JSON no JsonNode em Jackson?

Deve ser tão simples, mas eu não consigo encontrá-lo depois de tentar por uma hora #embarrasing. Eu preciso obter uma string JSON, por exemplo, {“k1″:v1,”k2”:v2} , analisada como um JsonNode . JsonFactory factory = new JsonFactory(); JsonParser jp = factory.createJsonParser(“{\”k1\”:\”v1\”}”); JsonNode actualObj = jp.readValueAsTree(); dá java.lang.IllegalStateException: No ObjectCodec defined for the parser, can not deserialize […]

Desserializando tipos polimórficos com Jackson

Se eu tiver uma estrutura de classs como esta: public abstract class Parent { private Long id; … } public class SubClassA extends Parent { private String stringA; private Integer intA; … } public class SubClassB extends Parent { private String stringB; private Integer intB; … } Existe uma maneira alternativa de desserializar diferente, em […]

Json e Java – Referência Circular

Estou tendo e problema com a referência circular. Tenho Rest Webservices que retorna objects para o front end, o problema é quando tento retornar objects que possuem diversas referências assim como o resultado recebo uma resposta infinita, que gera java.lang.IllegalStateException: Cannot call sendError() after the response has been committed Os objects são gerados automaticamente pelo […]

Existe um módulo de tipo de dados jackson para JDK8 java.time?

Estou procurando um módulo para as novas classs java.time do JDK8 . Eu olhei através da lista de projetos FasterXML GitHub e atualmente não encontrei nenhum. Pelo que entendi, o Jackson ainda está sendo compilado contra o JDK6, portanto, não pode usar essas classs diretamente e deve ter isso como um módulo separado, como foi […]

Como criar um desserializador personalizado em Jackson para um tipo genérico?

Imagine o seguinte cenário: class Foo { …. } class Bar { Foo foo; } Eu quero escrever um custom deserializer de Jackson para Foo. Para fazer isso (por exemplo, para desserializar a class Bar que tem a propriedade Foo ), eu preciso saber o tipo concreto de Foo , usado em Bar , no […]

Biblioteca Jackson JSON: como instanciar uma class que contém campos abstratos

Eu quero converter uma string JSON em object java, mas a class desse object contém campos abstratos, que Jackson não pode instanciar e não produz o object. Qual é a maneira mais fácil de informar sobre alguma implementação padrão de uma class abstrata, como setDefault(AbstractAnimal.class, Cat.class); ou para decidir sobre a class de implementação com […]

Jackson mudar JsonIgnore dinamicamente

Eu tenho uma aula e há variables ​​dentro dela também. Às vezes, quero ignorar alguns campos e, às vezes, não quando faço a desserialização (talvez na serialização também). Como posso fazer isso em Jackson?

Como anotar campos de enumeração para desserialização usando Jackson json

Serviço Web REST Jackson 1.6.2 / Apache Wink Como eu anoto um campo enum para que Jackson desserialize isso? Classe interna public enum BooleanField { BOOLEAN_TRUE { public String value() { return “1”;} }, BOOLEAN_FALSE { public String value() { return “0”;} }, Objeto Java Bean / Request BooleanField locked; public BooleanField getLocked() {return locked;} […]

Jackson não está desserializando uma lista genérica que foi serializada

Ao usar o Apache Jersey com Jackson para serialização JSON (no servidor e no cliente), estou acertando um problema ao desserializar uma lista genérica. O JSON que estou produzindo é o seguinte, todas as 3 classs em “data” implementam “CheckStatusDetail”: { “errorCode” : 0, “errorMessage” : null, “type” : “array”, “data” : [ { “@class” […]

Use o nome da class como chave-raiz para a serialização do JSON Jackson

Suponha que eu tenha um pojo: import org.codehaus.jackson.map.*; public class MyPojo { int id; public int getId() { return this.id; } public void setId(int id) { this.id = id; } public static void main(String[] args) throws Exception { MyPojo mp = new MyPojo(); mp.setId(4); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); System.out.println(mapper.getSerializationConfig().isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE)); System.out.println(mapper.writeValueAsString(mp)); } } […]