ObjectMapper klasse i Jackson
ObjectMapper er en af de vigtigste klasser, der findes i Jackson bibliotek. Det bruges til at læse og skrive JSON-data. Den er ansvarlig for at læse data fra eller til POJO-fil og til og fra en JSON-træmodel.
Der er følgende karakteristika for ObjectMapper-klassen:
- Den understøtter avancerede koncepter som f.eks Polymorfi og Genkendelse af objekter.
- Det er meget tilpasseligt at arbejde med forskellige stilarter af JSON-indhold.
- Det fungerer som en fabrik for forskud Objektlæser og ObjectWriter klasser.
ObjectMapper-klassen erklæres på følgende måde:
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
Indlejrede klasser
Følgende tabel definerer de klasser, der udvider ObjectMapper-klassen eller, kan sige, indlejrede klasser af ObjectMapper-klassen.
| klasse | Beskrivelse |
|---|---|
| DefaultTypeResolverBuilder | Det er en tilpasset TypeResolverBuilder klasse, der bruges til at få typeopløsningsbyggere, som vi kan bruge med 'standardindtastning'. |
| DefaultTyping | For at specificere typen af typer, bruges optællinger med enableDefaultTyping() metoden. |
Lad os nu forstå felterne, konstruktørerne og metoderne i ObjectMapper-klassen:
Felter i ObjectMapper-klassen
protected DefaultDeserializationContext _deserializationContext
Det er et blueprint kontekstobjekt, der er gemt for at tillade brugerdefinerede underklasser.
protected DeserializationConfig _deserializationConfig
Det er et konfigurationsobjekt, som bruges til at definere de grundlæggende globale indstillinger for de-serialiseringsprocessen.
beskyttet JsonFactory jsonFactory
For at oprette en instans af JsonParser og JsonGenerator, bruges JsonFactory.
beskyttede InjectableValues _injectableValues
Det er en udbyder, der bruges til at injicere værdierne i de-serialiserede POJO'er.
beskyttede ConfigOverrides _propertyOverrides
Den bruges til at få adgang til de aktuelt aktive per-type konfigurationstilsidesættelser.
beskyttet SimpleMixInResolver _mixIns
Det er en kortlægning, der bruges til at definere en måde at anvende blandede annoteringer på. Kortlægningen foregår på følgende måde:
Nøgle: Skriv for at modtage yderligere anmærkninger.
Værdi: Type, der har anmærkninger til at 'blande i'
beskyttet Sæt _registredModuleTypes
Det er et sæt, der definerer det sæt af modultyper, der er blevet registreret.
beskyttet SerializationConfig _serializationConfig
Det er også et konfigurationsobjekt, der bruges til at definere de grundlæggende globale indstillinger for serialiseringsprocessen.
beskyttet ConcurrentHashMap
Det er et kort, der bruges til at holde styr på de-serializere på rodniveau. Det er et kort på hovedniveau.
beskyttet SerializerFactory _serializerFactory
Det er en fabrik, der bruges til at konstruere serializers.
beskyttet SubtypeResolver _subtypeResolver
Det bruges til at registrere undertyper og til at løse dem for super/undertyper efter behov.
beskyttet TypeFactory _typeFactory
Det er en fabrik, der bruges til at oprette JavaType-forekomster. De er nødvendige for at tillade moduler at tilføje mere brugerdefineret type håndtering.
protected DefaultSerializerProvider _serializerProvider
Det er et objekt, der er ansvarlig for at administrere adgangen til serializers, der bruges til serialisering.
beskyttede statiske BaseSettings DEFAULT_BASE
Det er basisindstillinger, der inkluderer standarder, der bruges til alle ObjectMapper-forekomster.
Konstruktører af ObjectMapper-klassen
Der er følgende konstruktører af ObjectMapper-klassen:
| Konstruktør | Beskrivelse |
|---|---|
| ObjectMapper() | Det er en standardkonstruktør, der bruges til at konstruere en instans, der bruger standard JsonFactory, SerializerProvider, og BeanSerializerFactory. |
| ObjectMapper (JsonFactory factory) | Det bruges til at konstruere en instans, der bruger den givne JsonFactory. Den givne JsonFactory bruges til at konstruere JsonParsers og/eller JsonGenerators. |
| ObjectMapper (JsonFactory factory, SerializerProvider provider1, DeserializerProvider provider2) | Det bruges til at konstruere en instans, der bruger det givne JsonFactory, SerializerProvider, og DeserializerProvider. Den givne JsonFactory bruges til at konstruere JsonParsers og/eller JsonGenerators. |
| beskyttet ObjectMapper (ObjectMapper mapper) | Det er en kopi-konstruktør til at understøtte copy(). |
ObjectMapper-klassemetoder
ObjectMapper-klassen definerer følgende metoder:
| Metode | Returtype | Beskrivelse |
|---|---|---|
| _checkInvalidCopy(Class exp) | ugyldig | Den bruges til at kontrollere ugyldig kopi. |
| _configAndWriteValue(JsonGenerator g, objektværdi) | ugyldig | Den bruges til at konfigurere generatoren, når det er nødvendigt, og derefter udføre skrivefunktionaliteten. |
| _convert(Object fromValue, JavaType toValueType) | Objekt | Det bruges til at få den faktiske konverteringsimplementering. Her bruges læse- og skrivemetoder ikke til koden. |
| _initForReading(JsonParser p) | JsonToken | Det bruges til at sikre, om den givne parser er klar til at læse indhold til databinding eller ej. |
| _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) | JsonDeserializer | For den beståede rodniveauværdi, hvis vi ønsker at finde de-serializeren, bruger vi denne metode. |
| _newReader(DeserializationConfig config) Lignende metode:
| Objektlæser | Det er en fabriksmetode, dvs. brugt til at få ObjectReader-forekomsterne af den rigtige undertype. For at bruge denne metode er det nødvendigt, at underklasserne skal tilsidesætte. |
| _newWriter(SerializationConfig config) Lignende metoder:
| ObjectWriter | Det er en fabriksmetode, dvs. den bruges til at få ObjectWriter-forekomsterne af den rigtige undertype. For at bruge denne metode er det nødvendigt, at underklasserne skal tilsidesætte. |
| _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) | Objekt | Det bruges til at få et objekt, der definerer værdilæsning og bindingsoperation. |
| _serializerProvider(SerializationConfig config) | DefaultSerializerProvider | Det er en tilsidesættelig hjælpemetode, der bruges til at konstruere SerializerProvider. |
| acceptJsonFormatVisitor(Klassetype, JsonFormatVisitorWrapper besøgende) Lignende metode:
| ugyldig ugyldig | Hvis vi ønsker at besøge typehierarkiet af en bestemt type med den angivne besøgende, bruger vi denne metode. |
| addHandler(DeserializationProblemHandler h) | ObjectMapper | For at håndtere specificerede problemer under de-serialisering, bruger vi en specificeret DeserializationProblemHandler, og for at tilføje handleren bruger vi denne metode. |
| addMixIn(Class target, Class mixinSource) | ObjectMapper | For at bruge mix-in annotering til specificeret augmenting klasse eller grænseflade, bruger vi denne metode til at tilføje den. |
| canDeserialize (JavaType-type) | Boolean | Det bruges til at kontrollere, om kortlæggeren kan de-serialisere et objekt af en specificeret type eller ej. |
| canDeserialize (JavaType-type, AtomicReference-årsag) | Boolean | Det ligner den tidligere metode. Den eneste forskel er, at den kan returnere den smidbare, der blev smidt på tidspunktet for konstruktionen af serializeren. Den smidbare kan bruges til at finde ud af det faktiske problem. |
| canSerialize (klassetype) | Boolean | Det bruges til at kontrollere, om mapperen kan serialisere et objekt af en specificeret type eller ej. |
| canSerialize(Klassetype, AtomicReference-årsag) | Boolean | Det ligner den tidligere metode. Den eneste forskel er, at den kan returnere den smidbare, der blev smidt på tidspunktet for konstruktionen af serializeren. Den smidbare kan bruges til at finde ud af det faktiske problem. |
| clearProblemHandlers() | ObjectMapper | Det er en af de metoder, der bruges til at fjerne alle DeserializationProblemHandlers forekomster fra mapperen, som er registreret. |
| konfigurer (DeserializationFeature f, boolesk tilstand) lignende metoder:
| ObjectMapper | Det bruges til at ændre tilstanden af en tænd/sluk-de-serialisering, Json Generator, JsonParser, Mapper eller Serialization-funktion for objektmapperen, generatorforekomster, parserforekomster, mapperforekomster eller objektmapper. |
| constructType(Type t) | JavaType | Hvis vi ønsker at konstruere JavaType ud af en given type uden eksplicit kontekst, bruger vi denne metode. |
| convertValue(Object fromValue, Class toValueType) Lignende metoder:
| T | Hvis vi ønsker at udføre en to-trins konvertering af en given værdi til en instans af en given værditype, bruger vi converValue() metoden. |
| createArrayNode() | ArrayNode | Det bruges til at oprette ArrayNode. |
| defaultClassIntrospector() | KlasseIntrospektør | Hvis vi vil bruge standard ClassIntrospector, bruger vi denne tilsidesættelige hjælpemetode til at konstruere den. |
| deaktiver (DeserializationFeature-funktion) Lignende metoder:
| ObjectMapper | Det bruges til at deaktivere givet DeserializationConfig, JsonGenerator.Features for parser-forekomster, JsonParser.Features for parser-forekomster af objektmapperen. |
| disableDefaultTyping() | ObjectMapper | Mange gange er vi nødt til at deaktivere den automatiske medtagelse af typeoplysninger, og til dette formål bruger vi denne metode. |
aktivere (DeserializationFeature-funktion)
| ObjectMapper | Den bruges til at aktivere den givne DeserializationConfig, JsonGenerator.Features for parser-forekomster, JsonParser.Features for parser-forekomster af objektmapperen. |
| enableDefaultTyping() Lignende metoder:
| ObjectMapper | For at bruge automatisk inkludering af typeinformation til de-serialisering af polymorfe typer., bruger vi denne metode til at aktivere den. |
| findAndRegisterModules() | ObjectMapper | Det ligner mapper.registerModules(mapper.findModules())-metoden. |
| findModules() Lignende metoder:
| Liste | Det bruges til at finde tilgængelige metoder. Metoden bruger JDK ServiceLoader-faciliteten med modulleveret SPI. |
| getDateFormat() | Datoformat | Det bruges til at få formatet på datoen. |
| getDeserializationConfig() | DeserializationConfig | Det bruges til at hente det delte standard DeserializationConfig-objekt. Det returnerede objekt definerer konfigurationsindstillingerne for de-serialisering. |
| getDeserializationContext() | Deserialiseringskontekst | Det bruges til at få den aktuelle DeserializationContext. |
| getFactory() | JsonFactory | Hvis mapperen skal konstruere en Json-parser og generatorer, har den brug for json factory, og for at få det bruger vi metoden getFactory(). |
| getInjectableValues() | Injicerbare værdier | Det bruges til at få injicerbare værdier. |
| getJsonFactory() | JsonFactory | Det er en forældet metode til at få Json-fabrikken. |
| getNodeFactory() | JsonNodeFactory | Det bruges til at hente JsonNodeFactory, der bruges af kortlæggeren på tidspunktet for direkte konstruktion af root JsonNode-forekomster til træer. |
| getPropertyNamingStrategy() | Ejendomsnavngivningsstrategi | Som navnet antyder, er det vant til ejendommens navnestrategi. |
| getSerializationConfig() | SerializationConfig | Det bruges til at hente det delte standard SerializationConfig-objekt. Det returnerede objekt definerer konfigurationsindstillingerne for serialisering. |
| getSerializerFactory() | SerializerFactory | Det bruges til at få den nuværende SerializerFactory. |
| getSerializerProvider() | SerializerProvider | Det er en accessor til fabrikken, som bruges til at oprette instanser ved at kalde DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory). |
| getSerializerProviderInstance() | SerializerProvider | Det er en accessor, der bruges til at konstruere og returnere en instans af SerializerProvider, som vi kan bruge til at få adgang til serializers. |
| getSubtypeResolver() | SubtypeResolver | Den bruges til at få adgang til den undertypeopløser, der er i brug. |
| getTypeFactory() | TypeFactory | Det er en accessor, der bruges til at få en forekomst af den aktuelt konfigurerede TypeFactory. |
| getVisibilityChecker() | VisibilityChecker | Den bruges til at få adgang til den aktuelt konfigurerede synlighedskontrol. |
| isEnabled(DeserializationFeature f) Lignende metoder:
| Boolean | Metoden isEnable() og dens variationer bruges til at kontrollere, om en given deserialiseringsspecifik, JsonFactory, JsonGenerator, JsonParser, Mapper eller Serialiseringsfunktion er aktiveret eller ej. |
| mixInCount() | int | Det bruges til at få tællingen af mixIn. |
| læser() Lignende metoder:
| Objektlæser | Reader()-metoden og dens variationer er fabriksmetoderne, der bruges til at konstruere en instans af ObjectReader. Baseret på kravet kan vi videregive Base64-kodningsvarianten for Base64-kodede binære data, standardattributter, aktiverede funktioner, injicerbare værdier, JsonNodeFactory til at konstruere JSON-træer. |
| læserFor(klassetype) | Objektlæser | Det er en fabriksmetode, der bruges til at konstruere ObjectReader, der tillader læse- eller opdateringsoperationer for forekomster af den angivne type. |
| readerFor (JavaType type) | Objektlæser | Det er en fabriksmetode, der bruges til at konstruere ObjectReader, der tillader læse- eller opdateringshandlinger for forekomster af specificeret JavaType. |
| readerFor(TypeReference type) | Objektlæser | Det er en fabriksmetode, der bruges til at konstruere ObjectReader, der tillader læse- eller opdateringsoperationer for forekomster af givet TypeReference. |
| readerForUpdating(Object valueToUpdate) | Objektlæser | Det er en fabriksmetode, der bruges til at konstruere ObjectReader, der tillader opdateringsoperationer for det givne objekt. |
| readerWithView(Klassevisning) | Objektlæser | Det er en fabriksmetode, der bruges til at konstruere ObjectReader, hvilket tillader de-serialisering af objekter med givet JSON View. |
readTree(byte[] indhold)
| JsonNode ELLER T | ReadTree() og dets variationer bruges til at de-serialisere JSON-indholdet som et træ udtrykt ved hjælp af et sæt JsonNode-instanser. |
| readValue(byte[] src, Class valueType) Lignende metoder
| T ELLER MappingIterator | ReadValue() og dens variationer bruges til at afserialisere JSON-indhold
|
| readValues(JsonParser p, Class valueType) Lignende metoder:
| MappingIterator | ReadValues() og dens variationer bruges til at læse sekvensen af objekter fra parserstrømmen. |
| registerModule(modulmodul) Lignende metoder:
| ObjectMapper | registerModule() og dets variationer bruges til at registrere et modul, der har evnen til at udvide funktionaliteten leveret af mapperen. |
| registerSubtypes(NamedType... typer) | ugyldig | Den bruges til at registrere den givne klasse som en undertype. Ved at gøre det kan den typenavnebaserede opløsning linke supertyper til undertyper. |
| setAnnotationIntrospector(AnnotationIntrospector ai) | ObjectMapper | Det bruges til at indstille AnnotationIntrospector, som bruges af mapper-instansen til både serialisering og de-serialisering. |
| setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) | ObjectMapper | Det bruges til at ændre den forekomst af AnnotationIntrospector, der bruges af den aktuelle mapperforekomst til serialisering og de-serialisering. |
| setBase64Variant(Base64Variant v) | ObjectMapper | Den bruges til at konfigurere standard Base64Variant, som vil blive brugt af byte[] serializers og de-serializers. |
| setConfig(DeserializationConfig config) | ObjectMapper | For at udføre tilsidesættelsen af det underliggende DeserializationConfig-objekt bruger vi denne metode. |
| setConfig(SerializationConfig config) | ObjectMapper | For at udføre tilsidesættelsen af det underliggende SerializationConfig-objekt med serialiseringsspecifikke konfigurationsindstillinger, bruger vi denne metode. |
| setDateFormat(DatoFormat datoFormat) | ObjectMapper | Det bruges til at konfigurere standard DateFormat til at bruge det på tidspunktet for serialisering af tidsværdier som Strings eller de-serialisering fra JSON Strings. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | ObjectMapper | Den bruges til at specificere PrettyPrinter for at bruge den, når 'default pretty-printing' er aktiveret. |
| setDefaultTyping(TypeResolverBuilder-typer) | ObjectMapper | Det bruges til at aktivere automatisk inkludering af typeoplysninger. |
| setHandlerInstantiator(HandlerInstantiator hej) | Objekt | Det bruges til at konfigurere HandlerInstantiator til at bruge til at oprette forekomster af handlere. |
| setFilterProvider(FilterProvider filterProvider) | ObjectMapper | Den bruges til at konfigurere den aktuelle mapper til at bruge specificeret FilterProvider til at kortlægge filter-id'er til faktiske filterforekomster. |
| setInjectableValues(InjectableValues injectableValues) | ObjectMapper | Det bruges til at konfigurere InjectableValues, som bruges til at finde værdier, der skal indsprøjtes. |
| setLocale(Local l) | ObjectMapper | Det bruges til at tilsidesætte den standardlokalitet, der skal bruges til formatering. |
| setMixInResolver(ClassIntrospector.MixInResolver-opløsning) | ObjectMapper | Vi bruger denne metode til at specificere den givne resolver for at lokalisere blandingsklasser, der skal bruges, og tilsidesætte direkte tilføjede tilknytninger. |
| setMixInAnnotations(Kort | ugyldig | Det er en afskrevet metode til at definere mix-in annotering. |
| setNodeFactory(JsonNodeFactory f) | ObjectMapper | Det bruges til at specificere JsonNodeFactory, der skal bruges til at konstruere trænoder på rodniveau. |
| setMixIns(Kort | ObjectMapper | Det bruges til at definere de blandede annoteringer, der skal bruges til at udvide annoteringer, som bearbejdelige klasser har. |
| setPropertyInclusion(JsonInclude.Value incl) | ObjectMapper | Den bruges til at indstille standard POJO-egenskabsinkluderingsstrategi for serialisering. |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | ObjectMapper | Det bruges til at indstille den brugerdefinerede egenskabsnavngivningsstrategi, der skal bruges. |
| setSerializerFactory(SerializerFactory f) | ObjectMapper | Den bruges til at indstille den specifikke SerializerFactory, der skal bruges til at konstruere (bean) serializers. |
| setSerializerProvider(DefaultSerializerProvider p) | ObjectMapper | Det bruges til at indstille 'blueprint' SerializerProvider-forekomsten til at bruge den som base til faktiske udbyderforekomster, der skal bruges til at håndtere caching af JsonSerializer-forekomster. |
| sætSubtypeResolver(SubtypeResolver str) | ObjectMapper | Den bruges til at indstille den brugerdefinerede undertypeopløser, der skal bruges. |
| setTimeZone(TimeZone tz) | ObjectMapper | Den bruges til at tilsidesætte den standardtidszone, der skal bruges til formatering. |
| setTypeFactory(TypeFactory f) | ObjectMapper | Det bruges til at tilsidesætte TypeFactory-forekomsten, som bruges af den aktuelle mapper. |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility synlighed)
| ObjectMapper | SetVisibility() og dens variation bruges til at indstille den aktuelt konfigurerede VisibilityChecker. Den returnerede ObjectMapper-instans bruges til at kontrollere, om det givne egenskabselement kan detekteres automatisk eller ej. |
| treeAsTokens(TreeNode n) | JsonParser | Det bruges til at konstruere en JsonParser ud fra JSON-trærepræsentation. |
| treeToValue(TreeNode n, Class valueType) | T | Det bruges til at binde de data, som JSON-træet indeholder, til en bestemt værditype. |
| version() | Version | Det bruges til at få versionsoplysningerne gemt i og læst fra krukken, der indeholder denne klasse. |
forfatter()
| ObjectWriter | Write() og dens variationer bruges til at konstruere ObjectWriter med standardindstillinger, givet Base64-kodningsvariant for Base64-kodede binære data, tegn-escape-detaljer for output, standardattributter, DateFormat, filterudbyder, skemaobjekt til JsonGenerator brugt til at skrive indhold, smuk printer til indrykning, eller funktion aktiveret. |
| writerFor(Class rootType) - | ObjectWriter | Den bruges til at konstruere ObjectWriter til at serialisere objekterne ved hjælp af en specificeret rodtype i stedet for den faktiske runtime-værdi. |
| writerFor(JavaType rootType) | ObjectWriter | Den bruges til at konstruere ObjectWriter til at serialisere objekterne ved hjælp af en specificeret rodtype i stedet for den faktiske runtime-værdi. |
| writerFor(TypeReference rootType) | ObjectWriter | Den bruges til at konstruere ObjectWriter til at serialisere objekterne ved hjælp af en specificeret rodtype i stedet for den faktiske runtime-værdi. |
| writerWithDefaultPrettyPrinter() | ObjectWriter | Det er en fabriksmetode, der bruges til at konstruere ObjectWriter til at serialisere objekterne ved hjælp af den smukke standardprinter til indrykning. |
writerWithType(Class rootType)
| ObjectWriter | Disse metoder afskrives, og i stedet for dem bruger vi writerFor(TypeReference) metoden. |
| writerWithView(Class serializationView) | ObjectWriter | Det er en fabriksmetode, der bruges til at konstruere ObjectWriter til at serialisere objekter ved hjælp af specificeret JSON View. |
| writeTree(JsonGenerator jgen, JsonNode rootNode) | ugyldig | Det bruges til at serialisere det leverede JSON-træ ved at bruge den givne JsonGenerator. |
| skriveVærdi(Fil resultatFil, Objektværdi) | ugyldig | Den bruges til at serialisere Java-værdi som JSON-output og skrive den til den givne fil. |
| skriveVærdi(JsonGenerator g, Objektværdi). | ugyldig | Det bruges til at serialisere Java-værdier som JSON-output ved at bruge den givne JsonGenerator. |
| skriveVærdi(OutputStream ud, Objektværdi) | ugyldig | Det bruges til at serialisere Java-værdi som JSON-output ved at bruge den givne OutputStream. |
| skriveVærdi(Writer w, Objektværdi) | ugyldig | Det bruges til at serialisere Java-værdier som JSON-output ved at bruge den givne Forfatter. |
| writeValueAsBytes(Objektværdi) | byte[] | Det bruges til at serialisere Java-værdier som et byte-array. |
| writeValueAsString(Objektværdi) | Snor | Det bruges til at serialisere Java-værdier som en streng. |
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+ ' ]'; } } Produktion: