sql >> Database teknologi >  >> NoSQL >> MongoDB

Serialiser en klasse på to forskellige måder med Jackson

Når du ser på muligheder, ser det ud til, at du kan kommentere egenskaber, så de kun vises, hvis en given View sendes til ObjectMapper bruges til serialisering. Du kunne således redigere klassen:

public static class FooReference {
    public DBRef<Foo> foo;

    @JsonView(Views.WebView.class)
    public Foo getFoo() {
        return foo.fetch();
    }
}

og give:

class Views {
    static class WebView { }
}

og serialiser derefter efter oprettelse af en konfiguration med den korrekte visning:

SerializationConfig conf = objectMapper.getSerializationConfig().withView(Views.WebView.class);
objectMapper.setSerializationConfig(conf);

Som så ville serialisere det. Hvis du ikke angiver visningen, når du serialiserer med MongoDB-indpakningen, ville det betyde, at metoden ville blive ignoreret. Egenskaber uden en JsonView-annotering serialiseres som standard, en adfærd du kan ændre ved at angive:

objectMapper.configure(SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION, false);

Mere information er tilgængelig på Jackson Wiki.

Der er stadig andre alternativer, viser det sig:der er Jackson MixIns, som ville lade dig tilsidesætte (de)serialiseringsadfærd for dele af en klasse uden at ændre selve klassen, og fra Jackson 2.0 (meget nyere udgivelse) er der filtre også.



  1. Sammenligning af implementeringsmønstre for MongoDB

  2. Mongodb Query Til at vælge poster med en given nøgle

  3. Forårsdata mongodb lukker ikke mongodb-forbindelser

  4. Kan selleri celerybeat bruge en Database Scheduler uden Django?