Serializando JSON com metadados de classe
Sep 30 2020
Usei Gson e Jackson e ambos oferecem uma maneira de lidar com o polimorfismo. Por exemplo, com Jackson, você precisa declarar a classe com um @JsonSubTypese adicionar todos e cada um que @JsonSubTypes.Typevocê tiver. Coisa semelhante acontece com Gson.
Minha pergunta é se há uma opção para fazer funcionar como o MongoDB serializa os dados. Ele adiciona automaticamente um _classcampo de metadados. Com esse método, você não precisa registrar manualmente todos os subtipos que criou.
É possível?
Respostas
5 Ghokun Sep 30 2020 at 15:51
Você pode conseguir isso com jackson:
@JsonTypeInfo(use = Id.CLASS, include = As.PROPERTY, property = "_class")
public abstract class AbstractModel {
}
public class ModelA extends AbstractModel {
}
...
mapper.writeValue(System.out, new ModelA());
Saídas:
{
"_class" : "demo.ModelA"
}
Dessa forma, você não precisa adicionar subtipos json para todos os tipos que adicionar.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino