Olá. Como posso estar alterando a minha saída do arquivo json, ou seja, controlar se vai junto colchetes, aspas, etc? Estou usando o jackson!
Olá. Como posso estar alterando a minha saída do arquivo json, ou seja, controlar se vai junto colchetes, aspas, etc? Estou usando o jackson!
Fala Clerman, tudo bem ?
Então pesquisando por aqui o uso da Jackson Json, vi que há algumas possibilidades.
Uma delas, no caso de remover a necessidade das aspas por exemplo, se você tiver o controle sobre o ObjectMapper (objeto que representa o ponto central da serialização dos seus objetos) você pode fazer algo como:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonGenerator.Feature.QUOTE_FIELD_NAMES, false);
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
... e após isso pedir para que o mapper leia seu objeto e gere a saída.
Fazendo assim manualmente antes da serialização ocorrer. Não vi por exemplo, a possibilidade de configurar a biblioteca no contexto geral pra trabalhar dessa maneira. Talvez porque não seja recomendado trabalhar fora do padrão JSON (que obriga as aspas), já que dessa forma não há garantias que as bibliotecas clientes mundo a fora realizem a deserialização fora dos padrões, o que demandaria processo de deserialização personalizado =/
Sobre a questão dos colchetes creio que não tenha muito jeito a não ser implementar um serializer próprio na mão (o que geralmente não é tão simples), já que a Jackson usa como padrão a sintaxe de lista pra maioria das coleções que usamos. Alternativamente você poderia criar uma classe sua (como um wrapper) que ao invés de serializar a coleção como uma lista []
vai seguir o padrão de serialização que você definir pro seu objeto. Existe um post bacana falando sobre isso aqui .
Se não me engano também, usando um hashmap como coleção a jackson mapeia seu elementos em um objeto javascript e não uma lista []
. Vale teste.
Espero ter ajudado. Abraço!