MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como serializar ObjectId para JSON?


Parece que Jackson foi customizado para serializar o campo id da string de uma maneira especial. Isso provavelmente faz parte da integração com org.bson biblioteca.

O problema é que seu desserializador é parametrizado pelo ObjectId digite em vez de String ou Object simples . Tente alterá-lo da seguinte maneira e remova também o @ObjectId anotação da declaração do campo. Aqui está um exemplo:
public class ObjectIdSerializer extends JsonSerializer<Object> {
    @Override
    public void serialize(Object value, JsonGenerator jsonGen,SerializerProvider provider) throws IOException {
        jsonGen.writeString(value.toString());
    }
}

Você também pode adotar a classe de provedor Jackson-Jongo para corrigir a serialização do ID do objeto para todas as classes.