Maison >Java >javaDidacticiel >Comment créer et enregistrer des sérialiseurs personnalisés dans Jackson pour une sérialisation JSON sur mesure ?
Comment utiliser des sérialiseurs personnalisés à Jackson
À Jackson, l'utilisation de sérialiseurs personnalisés permet une sérialisation JSON personnalisée pour des classes spécifiques.
Création d'un sérialiseur personnalisé
Pour sérialiser des objets du Classe d'articles, créez un sérialiseur personnalisé :
public class ItemSerializer extends JsonSerializer<Item> { @Override public void serialize(Item value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeNumberField("id", value.id); jgen.writeNumberField("itemNr", value.itemNr); jgen.writeNumberField("createdBy", value.createdBy.id); jgen.writeEndObject(); } }
Enregistrement du sérialiseur personnalisé
Après avoir créé le sérialiseur, il doit être enregistré auprès de Jackson :
SimpleModule simpleModule = new SimpleModule("SimpleModule", new Version(1,0,0,null)); simpleModule.addSerializer(new ItemSerializer()); mapper.registerModule(simpleModule);
Gestion de l'enregistrement du type
Jackson génère une erreur en raison d'un manque gestion des types. Résolvez ce problème en gérant explicitement les types :
public class ItemSerializer extends JsonSerializer<Item> { @Override public void serialize(Item value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { // ... (Serialization code) } @Override public Class<Item> handledType() { return Item.class; } }
Sérialisation avec Jackson
Avec le sérialiseur personnalisé enregistré, sérialisez l'objet Item comme d'habitude :
StringWriter writer = new StringWriter(); try { mapper.writeValue(writer, myItem); } catch (JsonGenerationException | JsonMappingException | IOException e) { e.printStackTrace(); }
Exemple de sérialisation utilisateur
Pour sérialiser des objets utilisateur avec un stratégie de sérialisation personnalisée, créez un sérialiseur similaire et enregistrez-le auprès de Jackson.
N'oubliez pas que les sérialiseurs personnalisés offrent une flexibilité dans le contrôle de la représentation JSON de vos objets, répondant aux exigences spécifiques de sérialisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!