Ist es möglich, Jackson zu verwenden, um eine Wertklasse (final, keine Setter) zu deserialisieren, die nur einen Konstruktor mit allen Argumenten und einen Builder hat? Ich kann die JsonDeserialize
und JsonPOJOBuilder
nicht verwenden, da ich versuche, ein in einer Client-Bibliothek definiertes Modell zu deserialisieren, sodass ich die Anmerkungen nicht hinzufügen kann. Kann ich den Builder für einen anderen Weg angeben?Jackson - deserialize mit Builder ohne Annotation
0
A
Antwort
1
Sie können versuchen, MixIn zu verwenden.
Ich habe eine Probe für Ihren Anwendungsfall erstellt:
Original-Klasse:
final class Sample {
final int id;
Sample(int id) {
this.id = id;
}
}
MixIn (bietet nicht-args Konstruktor mit gleicher args):
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
abstract class SampleMixin {
@JsonCreator
public SampleMixin(@JsonProperty("id") int id) {
}
}
Deserilaization:
ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(Sample.class, SampleMixin.class);
Sample sample = mapper.readValue(json, Sample.class);
+0
Ich habe es tatsächlich einen Schritt weitergeführt und ein '' '@JsonDeserialize (builder =. ..) '' 'auf einem MixIn und es hat funktioniert! So muss ich nicht alle Felder abbilden. Vielen Dank! – gta0004
Verwandte Themen
- 1. Deserialize Lazylist mit Jackson
- 2. Deserialize Local mit Jackson
- 3. Builder Muster JSON deserialize
- 4. Jackson Deserialize Abstrakte Klassen
- 5. Deserialize Retrofit2 Antwort in JSON ohne Jackson
- 6. Jackson - Deserialize verschachtelt JSON
- 7. Jackson ObjectMapper Set JsonFormat.Shape.ARRAY ohne Annotation
- 8. Jackson deserialize Double
- 9. Deserialize ArrayList aus String mit Jackson
- 10. Deserialize MongoDB Datumsfelder Java POJO Jackson Mit
- 11. Deserialize JSON mit Jackson mit Feldabhängigkeit
- 12. Jackson - serialize/deserialize Eigenschaft als JSON-Wert
- 13. Unterstützt Jackson JsonPath Annotation
- 14. Jackson deserialize in synästhetische Klasse
- 15. deserialize xml 2 pojo jackson
- 16. Jackson, deserialize String in Datum
- 17. Jackson Annotation Mixin Framework
- 18. Jackson ObjectMapper deserialize Objekt mit Array
- 19. jackson: deserialize eine benutzerdefinierte Ausnahme
- 20. Jackson - Deserialize Schnittstelle zu enum
- 21. Spring MVC - Jackson deserialize Klammern
- 22. deserialize lazy loading in hibernate und jackson
- 23. Jackson erkennt @JsonCreator-Annotation nicht
- 24. Jackson Annotation "JsonValue" funktioniert nicht
- 25. Jackson ignorieren Annotation auf Abhängigkeitsklasse
- 26. Verwenden Jackson JSON Deserialize mit w/geschachtelte Klasse?
- 27. Builder-Muster mit Jackson für Deserialisieren
- 28. Lombok Builder und Jackson Standardwerte
- 29. jackson deserialize unbekannter Eigenschaftsname zu benutzerdefinierter Entität
- 30. Jackson deserialize zusätzliche Felder als Karte
Einfach implementieren nt your 'JsonDeserializer' – rkosegi
@rkosegi Ich denke, es gibt keinen einfacheren Weg, dies zu tun, ohne im Grunde alle Feldnamen zu nummerieren und den Builder manuell aufzurufen? – gta0004
Haben Sie mehrere Arten von Objekten, die deserialisiert werden müssen oder nur eines? – rkosegi