Classe ObjectMapper a Jackson
ObjectMapper è una delle classi più importanti disponibili in il Jackson biblioteca. Viene utilizzato per leggere e scrivere dati JSON. È responsabile della lettura dei dati da o verso il file POJO e da e verso un modello di albero JSON.
Esistono le seguenti caratteristiche della classe ObjectMapper:
- Supporta concetti avanzati come Polimorfismo E Riconoscimento degli oggetti.
- È molto personalizzabile per funzionare con diversi stili di contenuti JSON.
- Funziona come una fabbrica per l'avanzamento Lettore di oggetti E ObjectWriter classi.
La classe ObjectMapper è dichiarata nel modo seguente:
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
Classi nidificate
La tabella seguente definisce le classi che estendono la classe ObjectMapper o, si può dire, le classi nidificate della classe ObjectMapper.
| Classe | Descrizione |
|---|---|
| DefaultTypeResolverBuilder | È un personalizzato DigitareResolverBuilder classe che viene utilizzata per ottenere i builder del risolutore di tipi, con cui possiamo utilizzare 'tipizzazione predefinita'. |
| Digitazione predefinita | Per specificare il tipo di tipi, le enumerazioni vengono utilizzate con il metodo abilitaDefaultTyping(). |
Ora comprendiamo i campi, i costruttori e i metodi della classe ObjectMapper:
Campi della classe ObjectMapper
protected DefaultDeserializationContext _deserializationContext
È un oggetto di contesto del progetto archiviato per consentire sottoclassi personalizzate.
protected DeserializationConfig _deserializationConfig
È un oggetto di configurazione utilizzato per definire le impostazioni globali di base per il processo di deserializzazione.
protetto JsonFactory jsonFactory
Per creare un'istanza di JsonParser e JsonGenerator, viene utilizzato JsonFactory.
protetto InjectableValues _injectableValues
È un provider utilizzato per inserire i valori nei POJO deserializzati.
protetto ConfigOverrides _propertyOverrides
Viene utilizzato per accedere alle sostituzioni della configurazione per tipo attualmente attive.
protetto SimpleMixInResolver _mixIns
Si tratta di una mappatura utilizzata per definire un modo di applicare le annotazioni mix-in. La mappatura viene effettuata nel seguente modo:
Chiave: Digita per ricevere ulteriori annotazioni.
Valore: Tipo con annotazioni da 'mescolare'
protetto Imposta _registeredModuleTypes
È un Set che definisce l'insieme dei tipi di modulo che sono stati registrati.
protetto SerializationConfig _serializationConfig
È anche un oggetto di configurazione utilizzato per definire le impostazioni globali di base per il processo di serializzazione.
protetto ConcurrentHashMap
È una mappa utilizzata per tenere traccia dei deserializzatori a livello di root. È una mappa di livello principale.
SerializerFactory protetto _serializerFactory
È una factory utilizzata per costruire i serializzatori.
protetto SubtypeResolver _subtypeResolver
Viene utilizzato per registrare i sottotipi e risolverli per super/sottotipi secondo necessità.
TypeFactory protetto _typeFactory
È una factory utilizzata per creare istanze JavaType. Sono necessari per consentire ai moduli di aggiungere una gestione dei tipi più personalizzata.
protected DefaultSerializerProvider _serializerProvider
È un oggetto responsabile della gestione dell'accesso ai serializzatori utilizzati per la serializzazione.
BaseSettings statici protetti DEFAULT_BASE
Si tratta di impostazioni di base che includono i valori predefiniti utilizzati per tutte le istanze di ObjectMapper.
Costruttori della classe ObjectMapper
Esistono i seguenti costruttori della classe ObjectMapper:
| Costruttore | Descrizione |
|---|---|
| MappatoreOggetti() | È un costruttore predefinito utilizzato per costruire un'istanza che utilizza default JsonFactory, SerializerProvider, E BeanSerializerFactory. |
| ObjectMapper (fabbrica JsonFactory) | Viene utilizzato per costruire un'istanza che utilizza la JsonFactory specificata. La JsonFactory specificata viene utilizzata per costruire JsonParsers e/o JsonGeneratori. |
| ObjectMapper (fabbrica JsonFactory, provider SerializerProvider1, provider DeserializerProvider2) | Viene utilizzato per costruire un'istanza che utilizza il dato JsonFactory, SerializerProvider, E DeserializerProvider. La JsonFactory specificata viene utilizzata per costruire JsonParsers e/o JsonGeneratori. |
| ObjectMapper protetto (mapper ObjectMapper) | È un costruttore di copie per supportare copy(). |
Metodi della classe ObjectMapper
La classe ObjectMapper definisce i seguenti metodi:
| Metodo | Tipo di reso | Descrizione |
|---|---|---|
| _checkInvalidCopy(Espressione classe) | vuoto | Viene utilizzato per verificare la copia non valida. |
| _configAndWriteValue(JsonGenerator g, valore oggetto) | vuoto | Viene utilizzato per configurare il generatore quando necessario e quindi eseguire la funzionalità di scrittura. |
| _convert(Oggetto daValore, JavaType aValueType) | Oggetto | Viene utilizzato per ottenere l'effettiva implementazione della conversione. Qui, i metodi di lettura e scrittura non vengono utilizzati per il codice. |
| _initForReading(JsonParser p) | JsonToken | Viene utilizzato per garantire se il parser specificato è pronto per leggere il contenuto per l'associazione dei dati o meno. |
| _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) | JsonDeserializer | Per il valore passato a livello root, se vogliamo individuare il deserializzatore, utilizziamo questo metodo. |
| _newReader (configurazione DeserializationConfig) Metodo simile:
| Lettore di oggetti | È un metodo factory, ovvero utilizzato per ottenere le istanze ObjectReader del sottotipo appropriato. Per poter utilizzare questo metodo è necessario che le sottoclassi abbiano l'override. |
| _newWriter(configurazione SerializationConfig) Metodi simili:
| ObjectWriter | È un metodo factory, ovvero utilizzato per ottenere le istanze ObjectWriter del sottotipo appropriato. Per poter utilizzare questo metodo è necessario che le sottoclassi abbiano l'override. |
| _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) | Oggetto | Viene utilizzato per ottenere un oggetto che definisce la lettura del valore e l'operazione di associazione. |
| _serializerProvider(configurazione SerializationConfig) | DefaultSerializerProvider | Si tratta di un metodo helper sovrascrivibile utilizzato per costruire SerializerProvider. |
| accettaJsonFormatVisitor(tipo di classe, visitatore JsonFormatVisitorWrapper) Metodo simile:
| vuoto vuoto | Se vogliamo visitare la gerarchia dei tipi di un particolare tipo con il visitatore specificato, utilizziamo questo metodo. |
| addHandler(DeserializationProblemHandler h) | ObjectMapper | Per gestire problemi specifici durante la deserializzazione, utilizziamo un DeserializationProblemHandler specificato e per aggiungere il gestore utilizziamo questo metodo. |
| addMixIn(Obiettivo classe, Origine mixin classe) | ObjectMapper | Per utilizzare l'annotazione mista per la classe o l'interfaccia di ampliamento specificata, utilizziamo questo metodo per aggiungerla. |
| canDeserialize(tipo JavaType) | Booleano | Viene utilizzato per verificare se il mapper può deserializzare un oggetto di un tipo specificato o meno. |
| canDeserialize(tipo JavaType, causa AtomicReference) | Booleano | È simile al metodo precedente. L'unica differenza è che può restituire l'oggetto lanciabile lanciato al momento della costruzione del serializzatore. Il lancio può essere utilizzato per capire il problema reale. |
| canSerialize(tipo di classe) | Booleano | Viene utilizzato per verificare se il mapper può serializzare o meno un oggetto di un tipo specificato. |
| canSerialize(tipo di classe, causa AtomicReference) | Booleano | È simile al metodo precedente. L'unica differenza è che può restituire l'oggetto lanciabile lanciato al momento della costruzione del serializzatore. Il lancio può essere utilizzato per capire il problema reale. |
| clearProblemHandlers() | ObjectMapper | È uno dei metodi utilizzati per rimuovere tutte le istanze di DeserializationProblemHandlers registrate dal mapper. |
| configure(DeserializationFeature f, stato booleano) metodi simili:
| ObjectMapper | Viene utilizzato per modificare lo stato di una funzione di deserializzazione on/off, Json Generator, JsonParser, Mapper o Serializzazione per il mappatore di oggetti, le istanze del generatore, le istanze del parser, l'istanza del mapper o il mappatore di oggetti. |
| buildType(Digita t) | JavaType | Se vogliamo costruire JavaType da un dato tipo senza contesto esplicito, utilizziamo questo metodo. |
| convertValue(Oggetto daValore, Classe aTipoValore) Metodi simili:
| T | Se vogliamo eseguire una conversione in due passaggi di un dato valore in un'istanza di un dato tipo di valore, utilizziamo il metodo converValue(). |
| createArrayNode() | ArrayNode | Viene utilizzato per creare ArrayNode. |
| defaultClassIntrospector() | ClassIntrospector | Se vogliamo utilizzare il ClassIntrospector predefinito, utilizziamo questo metodo helper Overridable per costruirlo. |
| disabilita (funzione DeserializationFeature) Metodi simili:
| ObjectMapper | Viene utilizzato per disabilitare determinati DeserializationConfig, JsonGenerator.Features per le istanze del parser, JsonParser.Features per le istanze del parser del mappatore di oggetti. |
| disabilitaDefaultTyping() | ObjectMapper | Molte volte dobbiamo disabilitare l'inclusione automatica delle informazioni sul tipo e, a questo scopo, utilizziamo questo metodo. |
abilita (funzione DeserializationFeature)
| ObjectMapper | Viene utilizzato per abilitare DeserializationConfig, JsonGenerator.Features per le istanze del parser, JsonParser.Features per le istanze del parser del mappatore di oggetti. |
| abilitaDefaultTyping() Metodi simili:
| ObjectMapper | Per utilizzare l'inclusione automatica delle informazioni sul tipo per la deserializzazione dei tipi polimorfici, utilizziamo questo metodo per abilitarla. |
| findAndRegisterModules() | ObjectMapper | È simile al metodo mapper.registerModules(mapper.findModules()). |
| trovaModuli() Metodi simili:
| Elenco | Viene utilizzato per individuare i metodi disponibili. Il metodo utilizza la funzionalità JDK ServiceLoader con SPI fornita dal modulo. |
| getDateFormat() | Formato data | Viene utilizzato per ottenere il formato della data. |
| getDeserializationConfig() | DeserializationConfig | Viene utilizzato per ottenere l'oggetto DeserializationConfig condiviso predefinito. L'oggetto restituito definisce le impostazioni di configurazione per la deserializzazione. |
| getDeserializationContext() | Contesto di deserializzazione | Viene utilizzato per ottenere il DeserializationContext corrente. |
| getFabbrica() | JsonFactory | Se il mappatore deve costruire un parser Json e generatori, ha bisogno della json factory e per ottenerlo utilizziamo il metodo getFactory(). |
| getInjectableValues() | Valori iniettabili | Viene utilizzato per ottenere valori iniettabili. |
| getJsonFactory() | JsonFactory | È un metodo deprecato per ottenere la factory Json. |
| getNodeFactory() | JsonNodeFactory | Viene utilizzato per ottenere la JsonNodeFactory utilizzata dal mapper al momento della costruzione diretta delle istanze JsonNode root per Trees. |
| getPropertyNamingStrategy() | Strategia di denominazione delle proprietà | Come suggerisce il nome, viene utilizzato per la strategia di denominazione della proprietà. |
| getSerializationConfig() | SerializzazioneConfig | Viene utilizzato per ottenere l'oggetto SerializationConfig predefinito condiviso. L'oggetto restituito definisce le impostazioni di configurazione per la serializzazione. |
| getSerializerFactory() | SerializerFactory | Viene utilizzato per ottenere l'attuale SerializerFactory. |
| getSerializerProvider() | SerializerProvider | Si tratta di una funzione di accesso per la factory, utilizzata per creare istanze chiamando DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory). |
| getSerializerProviderInstance() | SerializerProvider | Si tratta di una funzione di accesso utilizzata per costruire e restituire un'istanza di SerializerProvider, che possiamo utilizzare per accedere ai serializzatori. |
| getSubtypeResolver() | SottotipoResolver | Viene utilizzato per accedere al risolutore di sottotipi in uso. |
| getTypeFactory() | TypeFactory | È una funzione di accesso utilizzata per ottenere un'istanza della TypeFactory attualmente configurata. |
| getVisibilityChecker() | Controllo visibilità | Viene utilizzato per accedere al controllo della visibilità attualmente configurato. |
| èAbilitato(Funzione di deserializzazione f) Metodi simili:
| Booleano | Il metodo isEnable() e le sue varianti vengono utilizzati per verificare se una determinata funzionalità specifica della deserializzazione, JsonFactory, JsonGenerator, JsonParser, Mapper o Serializzazione è abilitata o meno. |
| mixInCount() | int | Viene utilizzato per ottenere il conteggio di mixIn. |
| lettore() Metodi simili:
| Lettore di oggetti | Il metodo reader() e le sue varianti sono i metodi factory utilizzati per costruire un'istanza di ObjectReader. In base ai requisiti, possiamo passare la variante di codifica Base64 per dati binari con codifica Base64, attributi predefiniti, funzionalità abilitate, valori iniettabili, JsonNodeFactory per la costruzione di alberi JSON. |
| readerFor(tipo di classe) | Lettore di oggetti | È un metodo factory utilizzato per costruire ObjectReader, consentendo operazioni di lettura o aggiornamento per istanze del tipo specificato. |
| readerFor(tipo JavaType) | Lettore di oggetti | È un metodo factory utilizzato per costruire ObjectReader, consentendo operazioni di lettura o aggiornamento per istanze di JavaType specificato. |
| readerFor(tipo TypeReference) | Lettore di oggetti | È un metodo factory utilizzato per costruire ObjectReader, consentendo operazioni di lettura o aggiornamento per istanze di un determinato TypeReference. |
| readerForUpdating(Valore oggettoToUpdate) | Lettore di oggetti | È un metodo factory utilizzato per costruire ObjectReader consentendo operazioni di aggiornamento per un determinato oggetto. |
| readerWithView(vista classe) | Lettore di oggetti | È un metodo factory utilizzato per costruire ObjectReader, consentendo deserializzazione di oggetti con una determinata vista JSON. |
readTree(byte[] contenuto)
| JsonNode O T | readTree() e le sue varianti vengono utilizzate per deserializzare il contenuto JSON come un albero espresso utilizzando un set di istanze JsonNode. |
| readValue(byte[] src, Classe valueType) Metodi simili
| T O MappingIterator | readValue() e le sue varianti vengono utilizzate per deserializzare il contenuto JSON
|
| readValues(JsonParser p, Classe valueType) Metodi simili:
| MappingIterator | readValues() e le sue varianti vengono utilizzate per leggere la sequenza di oggetti dal flusso del parser. |
| RegisterModule(Modulo modulo) Metodi simili:
| ObjectMapper | RegisterModule() e le sue varianti vengono utilizzate per registrare un modulo avente la capacità di estendere le funzionalità fornite dal mapper. |
| RegisterSubtypes(Tipi NamedType...) | vuoto | Viene utilizzato per registrare la classe data come sottotipo. In questo modo, la risoluzione basata sul nome del tipo può collegare i supertipi ai sottotipi. |
| setAnnotationIntrospector(AnnotationIntrospector ai) | ObjectMapper | Viene utilizzato per impostare AnnotationIntrospector, che viene utilizzato dall'istanza del mapper sia per la serializzazione che per la deserializzazione. |
| setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) | ObjectMapper | Viene utilizzato per modificare l'istanza di AnnotationIntrospector utilizzata dall'istanza corrente del mapper per la serializzazione e la deserializzazione. |
| setBase64Variante(Base64Variante v) | ObjectMapper | Viene utilizzato per configurare la Base64Variant predefinita che verrà utilizzata dai serializzatori e deserializzatori byte[]. |
| setConfig(Configurazione DeserializationConfig) | ObjectMapper | Per eseguire l'override dell'oggetto DeserializationConfig sottostante, utilizziamo questo metodo. |
| setConfig(Configurazione SerializationConfig) | ObjectMapper | Per eseguire l'override dell'oggetto SerializationConfig sottostante con impostazioni di configurazione specifiche della serializzazione, utilizziamo questo metodo. |
| setDateFormat(DateFormat dataFormat) | ObjectMapper | Viene utilizzato per configurare il DateFormat predefinito per utilizzarlo al momento della serializzazione dei valori temporali come stringhe o della deserializzazione da stringhe JSON. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | ObjectMapper | Viene utilizzato per specificare PrettyPrinter da utilizzare quando è abilitata la 'pretty-printing predefinita'. |
| setDefaultTyping(tipo TypeResolverBuilder) | ObjectMapper | Viene utilizzato per abilitare l'inclusione automatica delle informazioni sul tipo. |
| setHandlerInstantiator(HandlerInstantiator ciao) | Oggetto | Viene utilizzato per configurare HandlerInstantiator da utilizzare per la creazione di istanze di gestori. |
| setFilterProvider(FilterProvider filterProvider) | ObjectMapper | Viene utilizzato per configurare il mappatore corrente per utilizzare il FilterProvider specificato per mappare gli ID filtro alle istanze effettive del filtro. |
| setInjectableValues(InjectableValues injectableValues) | ObjectMapper | Viene utilizzato per configurare InjectableValues che viene utilizzato per trovare valori da iniettare. |
| setLocale(Locale l) | ObjectMapper | Viene utilizzato per sovrascrivere la locale predefinita da utilizzare per la formattazione. |
| setMixInResolver(Risoluzione ClassIntrospector.MixInResolver) | ObjectMapper | Utilizziamo questo metodo per specificare il risolutore fornito per individuare le classi mix-in da utilizzare, sovrascrivendo le mappature aggiunte direttamente. |
| setMixInAnnotations(Map | vuoto | Si tratta di un metodo ormai obsoleto per definire l'annotazione mix-in. |
| setNodeFactory(JsonNodeFactory f) | ObjectMapper | Viene utilizzato per specificare JsonNodeFactory da utilizzare per costruire nodi dell'albero a livello root. |
| setMixIns(Mappa | ObjectMapper | Viene utilizzato per definire le annotazioni combinate da utilizzare per aumentare le annotazioni delle classi elaborabili. |
| setPropertyInclusion(JsonInclude.Value incl) | ObjectMapper | Viene utilizzato per impostare la strategia di inclusione della proprietà POJO predefinita per la serializzazione. |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | ObjectMapper | Viene utilizzato per impostare la strategia di denominazione delle proprietà personalizzate da utilizzare. |
| setSerializerFactory(SerializerFactory f) | ObjectMapper | Viene utilizzato per impostare la SerializerFactory specifica da utilizzare per la costruzione di serializzatori (bean). |
| setSerializerProvider(DefaultSerializerProvider p) | ObjectMapper | Viene utilizzato per impostare l'istanza SerializerProvider 'progetto' da utilizzare come base per le istanze effettive del provider da utilizzare per gestire la memorizzazione nella cache delle istanze JsonSerializer. |
| setSubtypeResolver(SubtypeResolver str) | ObjectMapper | Viene utilizzato per impostare il risolutore di sottotipi personalizzato da utilizzare. |
| setTimeZone(TimeZone tz) | ObjectMapper | Viene utilizzato per sovrascrivere il fuso orario predefinito da utilizzare per la formattazione. |
| setTypeFactory(TypeFactory f) | ObjectMapper | Viene utilizzato per sovrascrivere l'istanza TypeFactory, utilizzata dal mapper corrente. |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibilità)
| ObjectMapper | setVisibility() e la sua variazione vengono utilizzati per impostare il VisibilityChecker attualmente configurato. L'istanza ObjectMapper restituita viene utilizzata per verificare se l'elemento proprietà specificato può essere rilevato automaticamente o meno. |
| treeAsTokens(TreeNode n) | JsonParser | Viene utilizzato per costruire un JsonParser dalla rappresentazione dell'albero JSON. |
| treeToValue(TreeNode n, Classe valueType) | T | Viene utilizzato per associare i dati contenuti nell'albero JSON in un tipo di valore specifico. |
| versione() | Versione | Viene utilizzato per ottenere le informazioni sulla versione archiviate e lette dal jar che contiene questa classe. |
scrittore()
| ObjectWriter | write() e le sue varianti vengono utilizzate per costruire ObjectWriter con impostazioni predefinite, data la variante di codifica Base64 per dati binari con codifica Base64, dettagli di escape dei caratteri per l'output, attributi predefiniti, DateFormat, provider di filtri, oggetto schema su JsonGenerator utilizzato per scrivere contenuto, bella stampante per rientranza o funzionalità abilitata. |
| writerFor(Classe rootType) - | ObjectWriter | Viene utilizzato per costruire ObjectWriter per serializzare gli oggetti utilizzando un tipo root specificato invece del tipo di valore effettivo di runtime. |
| scrittoreFor(TipoJavarootTipo) | ObjectWriter | Viene utilizzato per costruire ObjectWriter per serializzare gli oggetti utilizzando un tipo root specificato invece del tipo di valore effettivo di runtime. |
| writerFor(TipoRiferimento rootType) | ObjectWriter | Viene utilizzato per costruire ObjectWriter per serializzare gli oggetti utilizzando un tipo root specificato invece del tipo di valore effettivo di runtime. |
| writerWithDefaultPrettyPrinter() | ObjectWriter | È un metodo factory utilizzato per costruire ObjectWriter per serializzare gli oggetti utilizzando la stampante predefinita per il rientro. |
writerWithType(Classe rootType)
| ObjectWriter | Questi metodi sono ammortizzati e al loro posto utilizziamo il metodo writerFor(TypeReference). |
| writerWithView(Class serializationView) | ObjectWriter | È un metodo factory utilizzato per costruire ObjectWriter per serializzare oggetti utilizzando la vista JSON specificata. |
| writeTree(JsonGenerator jgen, JsonNode rootNode) | vuoto | Viene utilizzato per serializzare l'albero JSON fornito utilizzando il JsonGenerator specificato. |
| writeValue(File risultatoFile, Valore oggetto) | vuoto | Viene utilizzato per serializzare il valore Java come output JSON e scriverlo nel file data file. |
| writeValue(JsonGenerator g, valore oggetto). | vuoto | Viene utilizzato per serializzare i valori Java come output JSON utilizzando il file data JsonGenerator. |
| writeValue(OutputStream out, Valore oggetto) | vuoto | Viene utilizzato per serializzare il valore Java come output JSON utilizzando il valore specificato OutputStream. |
| writeValue(Scrittore w, Valore oggetto) | vuoto | Viene utilizzato per serializzare i valori Java come output JSON utilizzando il file data Scrittore. |
| writeValueAsBytes(Valore oggetto) | byte[] | Viene utilizzato per serializzare i valori Java come array di byte. |
| writeValueAsString(valore oggetto) | Corda | Viene utilizzato per serializzare i valori Java come stringa. |
JacksonEsempio.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+ ' ]'; } } Produzione: