Classe ObjectMapper à Jackson
ObjetMapper est l'une des classes les plus importantes disponibles dans le Jackson bibliothèque. Il est utilisé pour lire et écrire des données JSON. Il est responsable de la lecture des données depuis ou vers un fichier POJO et vers et depuis un modèle d'arborescence JSON.
La classe ObjectMapper présente les caractéristiques suivantes :
- Il prend en charge des concepts avancés tels que Polymorphisme et Reconnaissance d'objets.
- Il est très personnalisable pour travailler avec différents styles de contenu JSON.
- Cela fonctionne comme une usine à avance Lecteur d'objet et Écrivain d'objet Des classes.
La classe ObjectMapper est déclarée de la manière suivante :
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
Classes imbriquées
Le tableau suivant définit les classes qui étendent la classe ObjectMapper ou, peut-on dire, les classes imbriquées de la classe ObjectMapper.
| Classe | Description |
|---|---|
| DefaultTypeResolverBuilder | C'est un personnalisé TypeResolverBuilder classe utilisée pour obtenir les générateurs de résolveurs de types, que nous pouvons utiliser avec 'saisie par défaut'. |
| Saisie par défaut | Afin de spécifier le type de types, les énumérations sont utilisées avec la méthode activateDefaultTyping(). |
Voyons maintenant les champs, les constructeurs et les méthodes de la classe ObjectMapper :
Champs de la classe ObjectMapper
protected DefaultDeserializationContext _deserializationContext
Il s'agit d'un objet contextuel de plan qui est stocké pour autoriser des sous-classes personnalisées.
protected DeserializationConfig _deserializationConfig
Il s'agit d'un objet de configuration utilisé pour définir les paramètres globaux de base pour le processus de désérialisation.
protégé JsonFactory jsonFactory
Afin de créer une instance de JsonParser et JsonGenerator, JsonFactory est utilisé.
protégé InjectableValues _injectableValues
Il s'agit d'un fournisseur utilisé pour injecter les valeurs dans les POJO désérialisés.
protégé ConfigOverrides _propertyOverrides
Il est utilisé pour accéder aux remplacements de configuration par type actuellement actifs.
protégé SimpleMixInResolver _mixIns
Il s'agit d'un mappage utilisé pour définir une manière d'appliquer des annotations mix-in. Le mappage se fait de la manière suivante :
Clé: Tapez pour recevoir des annotations supplémentaires.
Valeur: Type comportant des annotations à « mélanger »
Ensemble protégé _registeredModuleTypes
Il s'agit d'un ensemble qui définit l'ensemble des types de modules qui ont été enregistrés.
protégé SerializationConfig _serializationConfig
Il s'agit également d'un objet de configuration utilisé pour définir les paramètres globaux de base du processus de sérialisation.
protégé ConcurrentHashMap
Il s'agit d'une carte utilisée pour suivre les désérialiseurs au niveau racine. Il s'agit d'une carte de niveau principal.
protégé SerializerFactory _serializerFactory
C'est une usine utilisée pour construire les sérialiseurs.
protégé SubtypeResolver _subtypeResolver
Il est utilisé pour enregistrer les sous-types et pour les résoudre en super/sous-types selon les besoins.
TypeFactory protégé _typeFactory
Il s'agit d'une usine utilisée pour créer des instances JavaType. Ils sont nécessaires pour permettre aux modules d'ajouter une gestion de type plus personnalisée.
protected DefaultSerializerProvider _serializerProvider
C'est un objet chargé de gérer l'accès aux sérialiseurs utilisés pour la sérialisation.
BaseSettings statiques protégés DEFAULT_BASE
Il s'agit de paramètres de base qui incluent les valeurs par défaut utilisées pour toutes les instances d'ObjectMapper.
Constructeurs de la classe ObjectMapper
Il existe les constructeurs suivants de la classe ObjectMapper :
| Constructeur | Description |
|---|---|
| ObjectMapper() | C'est un constructeur par défaut utilisé pour construire une instance qui utilise la valeur par défaut JsonFactory, SerializerProvider, et BeanSerializerFactory. |
| ObjectMapper (usine JsonFactory) | Il est utilisé pour construire une instance qui utilise le JsonFactory donné. Le JsonFactory donné est utilisé pour construire JsonParsers et/ou JsonGenerators. |
| ObjectMapper (usine JsonFactory, fournisseur SerializerProvider1, fournisseur DeserializerProvider2) | Il est utilisé pour construire une instance qui utilise le donné JsonFactory, SerializerProvider, et Fournisseur de désérialiseur. Le JsonFactory donné est utilisé pour construire JsonParsers et/ou JsonGenerators. |
| ObjectMapper protégé (mappeur ObjectMapper) | C'est un constructeur de copie pour prendre en charge copy(). |
Méthodes de classe ObjectMapper
La classe ObjectMapper définit les méthodes suivantes :
| Méthode | Type de retour | Description |
|---|---|---|
| _checkInvalidCopy (Exp de classe) | vide | Il est utilisé pour vérifier une copie invalide. |
| _configAndWriteValue (JsonGenerator g, valeur de l'objet) | vide | Il est utilisé pour configurer le générateur lorsque cela est nécessaire, puis exécuter la fonctionnalité d'écriture. |
| _convert (Objet fromValue, JavaType toValueType) | Objet | Il est utilisé pour obtenir l’implémentation réelle de la conversion. Ici, les méthodes de lecture et d'écriture ne sont pas utilisées pour le code. |
| _initForReading(JsonParserp) | JsonToken | Il est utilisé pour garantir si l'analyseur donné est prêt ou non à lire le contenu pour la liaison de données. |
| _findRootDeserializer (DeserializationContext ctxt, JavaType valueType) | JsonDésérialiseur | Pour la valeur transmise au niveau racine, si nous voulons localiser le désérialiseur, nous utilisons cette méthode. |
| _newReader (configuration de désérialisation) Méthode similaire :
| Lecteur d'objet | Il s'agit d'une méthode d'usine, c'est-à-dire utilisée pour obtenir les instances ObjectReader du sous-type approprié. Pour utiliser cette méthode, il est nécessaire que les sous-classes soient remplacées. |
| _newWriter (configuration SerializationConfig) Méthodes similaires :
| Écrivain d'objet | Il s'agit d'une méthode d'usine, c'est-à-dire utilisée pour obtenir les instances ObjectWriter du sous-type approprié. Pour utiliser cette méthode, il est nécessaire que les sous-classes soient remplacées. |
| _readValue (DeserializationConfig cfg, JsonParser p, JavaType valueType) | Objet | Il est utilisé pour obtenir un objet qui définit la lecture de valeur et l'opération de liaison. |
| _serializerProvider (configuration SerializationConfig) | Fournisseur de sérialiseur par défaut | Il s'agit d'une méthode d'assistance substituable utilisée pour construire SerializerProvider. |
| acceptJsonFormatVisitor (type de classe, visiteur JsonFormatVisitorWrapper) Méthode similaire :
| vide vide | Si nous voulons visiter la hiérarchie des types d'un type particulier avec le visiteur spécifié, nous utilisons cette méthode. |
| addHandler (DésérialisationProblemHandler h) | ObjetMapper | Afin de gérer les problèmes spécifiés lors de la désérialisation, nous utilisons un DeserializationProblemHandler spécifié, et pour ajouter le gestionnaire, nous utilisons cette méthode. |
| addMixIn (Cible de classe, Classe mixinSource) | ObjetMapper | Afin d'utiliser l'annotation mix-in pour une classe ou une interface d'augmentation spécifiée, nous utilisons cette méthode pour l'ajouter. |
| canDeserialize (type JavaType) | Booléen | Il est utilisé pour vérifier si le mappeur peut ou non désérialiser un objet d'un type spécifié. |
| canDeserialize (type JavaType, cause AtomicReference) | Booléen | C’est similaire à la méthode précédente. La seule différence est qu'il peut renvoyer le lanceur qui a été lancé au moment de la construction du sérialiseur. Le jetable peut être utilisé pour comprendre le problème réel. |
| canSerialize (type de classe) | Booléen | Il est utilisé pour vérifier si le mappeur peut sérialiser un objet d'un type spécifié ou non. |
| canSerialize (type de classe, cause AtomicReference) | Booléen | C’est similaire à la méthode précédente. La seule différence est qu'il peut renvoyer le lanceur qui a été lancé au moment de la construction du sérialiseur. Le jetable peut être utilisé pour comprendre le problème réel. |
| clearProblemHandlers() | ObjetMapper | C'est l'une des méthodes utilisées pour supprimer toutes les instances de DeserializationProblemHandlers du mappeur qui sont enregistrées. |
| configure (DeserializationFeature f, état booléen) méthodes similaires :
| ObjetMapper | Il est utilisé pour modifier l'état d'une désérialisation marche/arrêt, d'un générateur Json, d'un JsonParser, d'un mappeur ou d'une fonctionnalité de sérialisation pour le mappeur d'objets, les instances de générateur, les instances d'analyseur, l'instance de mappeur ou le mappeur d'objets. |
| Type de construction (Type t) | Type Java | Si nous voulons construire JavaType à partir d'un type donné sans contexte explicite, nous utilisons cette méthode. |
| convertValue (Objet fromValue, Classe toValueType) Méthodes similaires :
| T | Si nous voulons effectuer une conversion en deux étapes d'une valeur donnée en une instance d'un type de valeur donné, nous utilisons la méthode converValue(). |
| créerArrayNode() | Nœud de tableau | Il est utilisé pour créer ArrayNode. |
| defaultClassIntrospector() | ClasseIntrospecteur | Si nous voulons utiliser le ClassIntrospector par défaut, nous utilisons cette méthode d'assistance Overridable pour le construire. |
| désactiver (fonctionnalité DeserializationFeature) Méthodes similaires :
| ObjetMapper | Il est utilisé pour désactiver DeserializationConfig, JsonGenerator.Features donnés pour les instances d'analyseur, JsonParser.Features pour les instances d'analyseur du mappeur d'objets. |
| désactiverDefaultTyping() | ObjetMapper | Plusieurs fois, nous devons désactiver l’inclusion automatique des informations de type et, à cette fin, nous utilisons cette méthode. |
activer (fonctionnalité DeserializationFeature)
| ObjetMapper | Il est utilisé pour activer le DeserializationConfig donné, JsonGenerator.Features pour les instances d'analyseur, JsonParser.Features pour les instances d'analyseur du mappeur d'objets. |
| activerDefaultTyping() Méthodes similaires :
| ObjetMapper | Afin d'utiliser l'inclusion automatique des informations de type pour la désérialisation des types polymorphes, nous utilisons cette méthode pour l'activer. |
| findAndRegisterModules() | ObjetMapper | Elle est similaire à la méthode mapper.registerModules(mapper.findModules()). |
| trouverModules() Méthodes similaires :
| Liste | Il est utilisé pour localiser les méthodes disponibles. La méthode utilise la fonction JDK ServiceLoader avec le SPI fourni par le module. |
| getDateFormat() | Format de date | Il est utilisé pour obtenir le format de la date. |
| getDeserializationConfig() | DésérialisationConfig | Il est utilisé pour obtenir l’objet DeserializationConfig partagé par défaut. L'objet renvoyé définit les paramètres de configuration pour la désérialisation. |
| getDeserializationContext() | Contexte de désérialisation | Il est utilisé pour obtenir le DeserializationContext actuel. |
| getFactory() | JsonFactory | Si le mappeur a besoin de construire un analyseur et des générateurs Json, il a besoin d'une usine json, et pour l'obtenir, nous utilisons la méthode getFactory(). |
| getInjectableValues() | Valeurs injectables | Il est utilisé pour obtenir des valeurs injectables. |
| getJsonFactory() | JsonFactory | Il s'agit d'une méthode obsolète pour obtenir l'usine Json. |
| getNodeFactory() | JsonNodeFactory | Il est utilisé pour obtenir le JsonNodeFactory utilisé par le mappeur au moment de la construction directe des instances racine JsonNode pour les arbres. |
| getPropertyNamingStrategy() | Stratégie de dénomination des propriétés | Comme son nom l’indique, il est utilisé dans la stratégie de dénomination de la propriété. |
| getSerializationConfig() | SerializationConfig | Il est utilisé pour obtenir l’objet SerializationConfig par défaut partagé. L'objet renvoyé définit les paramètres de configuration pour la sérialisation. |
| getSerializerFactory() | SerializerFactory | Il est utilisé pour obtenir le SerializerFactory actuel. |
| getSerializerProvider() | Fournisseur de sérialiseur | Il s'agit d'un accesseur pour la fabrique, qui est utilisé pour créer des instances en appelant DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory). |
| getSerializerProviderInstance() | Fournisseur de sérialiseur | Il s'agit d'un accesseur utilisé pour construire et renvoyer une instance de SerializerProvider, que nous pouvons utiliser pour accéder aux sérialiseurs. |
| getSubtypeResolver() | Résolveur de sous-type | Il est utilisé pour accéder au résolveur de sous-type utilisé. |
| getTypeFactory() | TypeUsine | Il s'agit d'un accesseur utilisé pour obtenir une instance du TypeFactory actuellement configuré. |
| getVisibilityChecker() | Vérificateur de visibilité | Il est utilisé pour accéder au vérificateur de visibilité actuellement configuré. |
| isEnabled (DeserializationFeature f) Méthodes similaires :
| Booléen | La méthode isEnable() et ses variantes sont utilisées pour vérifier si la fonctionnalité spécifique à la désérialisation, JsonFactory, JsonGenerator, JsonParser, Mapper ou Serialization est activée ou non. |
| mixInCount() | int | Il est utilisé pour obtenir le nombre de mixIn. |
| lecteur() Méthodes similaires :
| Lecteur d'objet | La méthode reader() et ses variantes sont les méthodes d'usine utilisées pour construire une instance d'ObjectReader. En fonction des exigences, nous pouvons transmettre la variante de codage Base64 pour les données binaires codées en Base64, les attributs par défaut, les fonctionnalités activées, les valeurs injectables, JsonNodeFactory pour la construction d'arborescences JSON. |
| lecteurPour (type de classe) | Lecteur d'objet | Il s'agit d'une méthode de fabrique utilisée pour construire ObjectReader, permettant des opérations de lecture ou de mise à jour pour les instances du type spécifié. |
| lecteurPour (type JavaType) | Lecteur d'objet | Il s'agit d'une méthode de fabrique utilisée pour construire ObjectReader, permettant des opérations de lecture ou de mise à jour pour les instances du JavaType spécifié. |
| lecteurPour (type TypeReference) | Lecteur d'objet | Il s'agit d'une méthode d'usine utilisée pour construire ObjectReader, permettant des opérations de lecture ou de mise à jour pour les instances d'un TypeReference donné. |
| readerForUpdating (Valeur de l'objetToUpdate) | Lecteur d'objet | Il s'agit d'une méthode d'usine utilisée pour construire ObjectReader permettant des opérations de mise à jour pour l'objet donné. |
| readerWithView (vue de classe) | Lecteur d'objet | Il s'agit d'une méthode de fabrique utilisée pour construire ObjectReader, permettant désérialisation des objets avec une vue JSON donnée. |
readTree (contenu octet [])
| JsonNoeud OU T | Le readTree() et ses variantes sont utilisés pour désérialiser le contenu JSON sous la forme d'une arborescence exprimée à l'aide d'un ensemble d'instances JsonNode. |
| readValue (octet [] src, classe valueType) Méthodes similaires
| T OU MappageItérateur | Le readValue() et ses variantes sont utilisés pour désérialiser le contenu JSON
|
| readValues (JsonParser p, Classe valueType) Méthodes similaires :
| MappageItérateur | Le readValues() et ses variantes sont utilisés pour lire la séquence d'objets du flux de l'analyseur. |
| registreModule(Module module) Méthodes similaires :
| ObjetMapper | Le registerModule() et ses variantes sont utilisés pour enregistrer un module ayant la capacité d'étendre les fonctionnalités fournies par le mappeur. |
| RegisterSubtypes (types NamedType...) | vide | Il est utilisé pour enregistrer la classe donnée en tant que sous-type. Ce faisant, la résolution basée sur le nom de type peut lier les supertypes aux sous-types. |
| setAnnotationIntrospector (AnnotationIntrospector ai) | ObjetMapper | Il est utilisé pour définir AnnotationIntrospector, qui est utilisé par l'instance du mappeur pour la sérialisation et la désérialisation. |
| setAnnotationIntrospectors (sérialiseur AnnotationIntrospectorAI, désérialiseur AnnotationIntrospectorAI) | ObjetMapper | Il est utilisé pour modifier l'instance d'AnnotationIntrospector utilisée par l'instance actuelle du mappeur pour la sérialisation et la désérialisation. |
| setBase64Variant(Base64Variant v) | ObjetMapper | Il est utilisé pour configurer le Base64Variant par défaut qui sera utilisé par les sérialiseurs et désérialiseurs byte[]. |
| setConfig (configuration de désérialisation) | ObjetMapper | Afin d'effectuer le remplacement de l'objet DeserializationConfig sous-jacent, nous utilisons cette méthode. |
| setConfig (configuration de la configuration de la sérialisation) | ObjetMapper | Afin d'effectuer le remplacement de l'objet SerializationConfig sous-jacent ayant des paramètres de configuration spécifiques à la sérialisation, nous utilisons cette méthode. |
| setDateFormat(DateFormatdateFormat) | ObjetMapper | Il est utilisé pour configurer le DateFormat par défaut afin de l'utiliser au moment de la sérialisation des valeurs de temps en tant que chaînes ou de la désérialisation des chaînes JSON. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | ObjetMapper | Il est utilisé pour spécifier le PrettyPrinter à utiliser lorsque la « jolie impression par défaut » est activée. |
| setDefaultTyping (typeur TypeResolverBuilder) | ObjetMapper | Il est utilisé pour permettre l’inclusion automatique des informations de type. |
| setHandlerInstantiator(HandlerInstantiator salut) | Objet | Il est utilisé pour configurer HandlerInstantiator à utiliser pour créer des instances de gestionnaires. |
| setFilterProvider(FilterProvider filtreProvider) | ObjetMapper | Il est utilisé pour configurer le mappeur actuel afin qu'il utilise le FilterProvider spécifié pour mapper les identifiants de filtre aux instances de filtre réelles. |
| setInjectableValues(InjectableValues injectableValues) | ObjetMapper | Il est utilisé pour configurer InjectableValues qui est utilisé pour trouver les valeurs à injecter. |
| setLocale (Local l) | ObjetMapper | Il est utilisé pour remplacer les paramètres régionaux par défaut à utiliser pour le formatage. |
| setMixInResolver (Résolution ClassIntrospector.MixInResolver) | ObjetMapper | Nous utilisons cette méthode pour spécifier le résolveur donné afin de localiser les classes mix-in à utiliser, en remplaçant les mappages directement ajoutés. |
| setMixInAnnotations(Carte | vide | Il s'agit d'une méthode dépréciée pour définir une annotation mix-in. |
| setNodeFactory (JsonNodeFactory f) | ObjetMapper | Il est utilisé pour spécifier JsonNodeFactory à utiliser pour construire des nœuds d'arborescence au niveau racine. |
| setMixIns(Carte | ObjetMapper | Il est utilisé pour définir les annotations mixtes à utiliser pour augmenter les annotations dont disposent les classes traitables. |
| setPropertyInclusion (JsonInclude.Value incl) | ObjetMapper | Il est utilisé pour définir la stratégie d'inclusion de propriété POJO par défaut pour la sérialisation. |
| setPropertyNamingStrategy(PropertyNamingStrategys) | ObjetMapper | Il est utilisé pour définir la stratégie de dénomination des propriétés personnalisées à utiliser. |
| setSerializerFactory (SerializerFactory f) | ObjetMapper | Il est utilisé pour définir le SerializerFactory spécifique à utiliser pour la construction de sérialiseurs (bean). |
| setSerializerProvider (DefaultSerializerProvider p) | ObjetMapper | Il est utilisé pour définir l'instance SerializerProvider « modèle » afin de l'utiliser comme base pour les instances de fournisseur réelles à utiliser pour gérer la mise en cache des instances JsonSerializer. |
| setSubtypeResolver(SubtypeResolver chaîne) | ObjetMapper | Il est utilisé pour définir le résolveur de sous-type personnalisé à utiliser. |
| setTimeZone(TimeZone tz) | ObjetMapper | Il est utilisé pour remplacer le fuseau horaire par défaut à utiliser pour le formatage. |
| setTypeFactory(TypeFactory f) | ObjetMapper | Il est utilisé pour remplacer l'instance TypeFactory, qui est utilisée par le mappeur actuel. |
setVisibility (PropertyAccessor forMethod, visibilité JsonAutoDetect.Visibility)
| ObjetMapper | Le setVisibility() et sa variation sont utilisés pour définir le VisibilityChecker actuellement configuré. L'instance ObjectMapper renvoyée est utilisée pour vérifier si l'élément de propriété donné peut être détecté automatiquement ou non. |
| arbreAsTokens(TreeNode n) | JsonParser | Il est utilisé pour construire un JsonParser à partir d'une représentation arborescente JSON. |
| treeToValue (TreeNode n, Classe valueType) | T | Il est utilisé pour lier les données contenues dans l’arborescence JSON dans un type de valeur spécifique. |
| version() | Version | Il est utilisé pour obtenir les informations de version stockées et lues dans le fichier jar qui contient cette classe. |
écrivain()
| Écrivain d'objet | Le write() et ses variantes sont utilisés pour construire ObjectWriter avec les paramètres par défaut, étant donné la variante d'encodage Base64 pour les données binaires codées en Base64, les détails d'échappement de caractères pour la sortie, les attributs par défaut, DateFormat, le fournisseur de filtre, l'objet de schéma vers JsonGenerator utilisé pour écrire du contenu, jolie imprimante pour l'indentation ou fonctionnalité activée. |
| écrivainPour (Classe rootType) - | Écrivain d'objet | Il est utilisé pour construire ObjectWriter pour sérialiser les objets en utilisant un type racine spécifié au lieu du type de valeur d'exécution réel. |
| écrivainPour (JavaType rootType) | Écrivain d'objet | Il est utilisé pour construire ObjectWriter pour sérialiser les objets en utilisant un type racine spécifié au lieu du type de valeur d'exécution réel. |
| écrivainPour(TypeReference rootType) | Écrivain d'objet | Il est utilisé pour construire ObjectWriter pour sérialiser les objets en utilisant un type racine spécifié au lieu du type de valeur d'exécution réel. |
| écrivainAvecDefaultPrettyPrinter() | Écrivain d'objet | Il s'agit d'une méthode d'usine utilisée pour construire ObjectWriter pour sérialiser les objets en utilisant la jolie imprimante par défaut pour l'indentation. |
écrivainAvecType (Classe rootType)
| Écrivain d'objet | Ces méthodes sont dépréciées et à leur place, nous utilisons la méthodewriterFor(TypeReference). |
| WriterWithView (classe sérialisationView) | Écrivain d'objet | Il s'agit d'une méthode de fabrique utilisée pour construire ObjectWriter afin de sérialiser des objets à l'aide de la vue JSON spécifiée. |
| writeTree (JsonGenerator jgen, JsonNode rootNode) | vide | Il est utilisé pour sérialiser l'arborescence JSON fournie à l'aide du JsonGenerator donné. |
| writeValue (Fichier resultFile, Valeur de l'objet) | vide | Il est utilisé pour sérialiser la valeur Java en tant que sortie JSON et l'écrire dans le fichier donné. déposer. |
| writeValue (JsonGenerator g, valeur de l'objet). | vide | Il est utilisé pour sérialiser les valeurs Java en tant que sortie JSON en utilisant le paramètre donné JsonGenerator. |
| writeValue (OutputStream out, valeur de l'objet) | vide | Il est utilisé pour sérialiser la valeur Java en tant que sortie JSON en utilisant le paramètre donné Flux de sortie. |
| writeValue (Writer w, Valeur de l'objet) | vide | Il est utilisé pour sérialiser les valeurs Java en tant que sortie JSON en utilisant le paramètre donné Écrivain. |
| writeValueAsBytes (valeur de l'objet) | octet[] | Il est utilisé pour sérialiser les valeurs Java sous forme de tableau d'octets. |
| writeValueAsString (valeur de l'objet) | Chaîne | Il est utilisé pour sérialiser les valeurs Java sous forme de chaîne. |
JacksonExample.java
//import required classes and package if any package javaTpoint.Jackson; import java.io.IOException; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; //create class JacksonExample to understand implementation of Jackson public class JacksonExample { // main() method start public static void main(String args[]){ // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create a JSON string of employee details to deserilized object String stdString = '{
'students' : [
{
'stdId':'001',
'course':'MCA','+'
'firstName':'Nicholas',
'lastName':'Clemens',
'preferredFullName':'Nicholas Clemens','+'
'enrol':'S010',
'region':'indian',
'phoneNumber':'408-1234567',
'emailAddress''+':'[email protected]'
},
{
'stdId':'002',
'course':'BCA','+'
'firstName':'Sharon',
'lastName':'Lorenz',
'preferredFullName':'Sharon Lorenz','+'
'enrol':'S011',
'region':'indian',
'phoneNumber':'408-1111111',
'emailAddress''+':'[email protected]'
},
{
'stdId':'003',
'course':'Btech','+'
'firstName':'Brittany',
'lastName':'Hart',
'preferredFullName':'Brittany Hart',
''+'enrol':'S012',
'region':'indian',
'phoneNumber':'408-2222222',
'emailAddress':'[email protected]'
}
]
}'; try{ // use ObjectMapper for mapping JSON to Student Students students = mapper.readValue(stdString, Students.class); // print students System.out.println(students); // serialize students into json string stdString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(students); System.out.println(stdString); }catch (JsonParseException e) { e.printStackTrace(); }catch (JsonMappingException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } } } //create Students class class Students { public List students; // getter and setter public List getStudent() { return students; } public void setStudent(List students) { this.students = students; } } class Student { // declare variables private String stdId; private String course; private String firstName; private String lastName; private String preferredFullName; private String enrol; private String region; private String phoneNumber; private String emailAddress; public Student(){ } // getter/setters for all variables public String getStdId() { return stdId; } public void setStdId(String stdId) { this.stdId = stdId; } public String getCourse() { return course; } public void getCourse(String course) { this.course = course; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getPreferredFullName() { return preferredFullName; } public void setPreferredFullName(String preferredFullName) { this.preferredFullName = preferredFullName; } public String getEnrol() { return enrol; } public void setEnrol(String enrol) { this.enrol = enrol; } public String getRegion() { return region; } public void setRegion(String region) { this.region = region; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getEmailAddress() { return emailAddress; } public void setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; } public String toString(){ return 'Employee [ Student Id: '+stdId+', Course: '+course+ '' + ', First Name: '+firstName+ ', Last Name: '+lastName+ '' + ', Name: '+preferredFullName+ ', Enrol No: '+enrol+ '' + ', Region: '+region+ ', Phone Number: '+phoneNumber+ '' + ', Email Address: '+emailAddress+ ' ]'; } } Sortir: