Ich entwickle einen Rest api Webservice mit jHipster, ich möchte Feldfilter wie Facebook Graph API machen (Beispiel: http://myjhipster_web_service.com/api/user?fields=id,username) Das Problem ist, ich weiß nicht, wie man jackson Json Serialisierung tun, so dass ich beschlossen, zu machen ein ResponseBodyAdvice und serialisieren Daten von mir selbst, und für Leistungsprobleme möchte ich Jackson Serialisierung deaktivieren, so dass die Antwort nicht zweimal serialisiert werden. meine Frage ist, wie nur Jackson Antwort Serialisierung in Jhipster deaktivieren? Und gibt es eine andere Lösung für die Arbeit?JHipster Spring Wie kann ich Jackson JSer Serialisierung deaktivieren?
Antwort
Erste Idee
Sie können Ihre Anfrage (die ausgewählten Felder) und das Ergebnis (der Benutzer/s) in der REST-Controller wickeln, z.B. in einer bestimmten Klasse wie GraphResponse
.
Wenn Ihr Mapping im REST-Controller GraphResponse
zurückgibt, versucht Jackson das zu serialisieren.
So können Sie Ihre eigenen seriablizer für diese Klasse hinzufügen:
public class GraphResponseSerializer extends JsonSerializer<GraphResponse> {
@Override
public void serialize(GraphResponse response, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
// use jsonGenerator to write the JSON-stuff
}
}
Sie entweder den Serializer über die JacksonConfiguration
registrieren oder eine Anmerkung mit wie:
@JsonSerialize(using = GraphResponseSerializer.class)
public class GraphResponse {
// setter getter for "fields"
// setter getter for the actual response-object
}
Zweite Idee
Sie können ändern, wie die Beans/Entitäten serialisiert werden, indem Sie Ihre eigene BeanSerializerModifier
hinzufügen, die dafür verantwortlich ist (AFAIR).
Dritte Idee
Sie Ihre eigenen HttpMessageConverter
hinzufügen können, die das Objekt behandelt zu http-Ausgang und http-Eingang Umwandlung zu widersprechen. Da Jackson ausgeführt wird, weil ein MappingJackson2HttpMessageConverter
automatisch registriert ist, können Sie alternativ die MappingJackson2HttpMessageConverter
außer Kraft setzen und etwas implementieren der Serialisierung zu drehen ...
Vierte Idee
In einigen Projekten haben wir GraphQL (http://graphql.org/) , wo Sie Graphabfragen verwenden können, was wirklich mächtig ist und die ganze Filterung usw. für Sie basierend auf den Entitäten durchführt. Es gibt auch einen Spring-Boot-Starter für GraphQL, so dass Sie dies sehr einfach zu einem jhipster-Projekt hinzufügen können:
- 1. Spring-Data-Redis Jackson Serialisierung
- 2. Serialisierung Array mit Jackson
- 3. Jackson Subclass Serialisierung
- 4. Jackson Serialisierung für Subklassen
- 5. Jackson - Feldwert bei Serialisierung transformieren
- 6. Wie zu deaktivieren Jackson Jackson Serialisierung Feature WRITE_NUMBERS_AS_STRINGS für bestimmte Feld?
- 7. Wie kann ich die Aktivierung neuer Benutzer in JHipster deaktivieren?
- 8. Jackson JSON Serialisierung Mapping
- 9. Wie jhipster Registrierung zu deaktivieren?
- 10. Wie überspringe ich optionale.leere Felder während der Jackson-Serialisierung?
- 11. Jackson JsonNode Serialisierung
- 12. Jackson Feld basierte Serialisierung
- 13. Jackson Serialisierung zu Array
- 14. Hibernate Jackson, wenn Serialisierung stattfindet
- 15. Spring + Jackson, erfordert trailing 0 bei der Serialisierung von double
- 16. Wie kann man jackson SerializationFeature.WRAP_ROOT_VALUE deaktivieren/aktivieren?
- 17. Spring und jackson, wie FAIL_ON_EMPTY_BEANS durch @ResponseBody deaktivieren
- 18. Spring Jackson mit Ausnahme bestimmter Eigenschaften während der Serialisierung
- 19. Jackson XML Serialisierung XMLElementRef Name
- 20. Jackson Serialisierung Objekt als String
- 21. Resteasy mit jackson verursacht Serialisierung JsonMappingException
- 22. Frühling Jackson Serialisierung durch Schnittstelle
- 23. Jackson XML-Probleme auf Serialisierung
- 24. Jackson Serialisierung/Deserialisierung für ZoneDateTime
- 25. Jackson Standard JsonView für Serialisierung
- 26. Jackson: kundenspezifische Sammlung Serialisierung JSON
- 27. Wie erstelle ich einen Jackson Customizer für Jackson-Datentyp-Geld in Spring Boot?
- 28. Jackson benutzerdefinierte Serialisierung unter Frühling 3 MVC
- 29. Serialisierung von primitiven Stammobjekten mit Jackson
- 30. @JsonInclude (Include.NON_NULL) nicht funktioniert/jackson Nullwerte Serialisierung