Clasa ObjectMapper din Jackson
ObjectMapper este una dintre cele mai importante clase disponibile în Jackson bibliotecă. Este folosit pentru a citi și scrie date JSON. Este responsabil pentru citirea datelor din sau către fișierul POJO și către și de la un model de arbore JSON.
Există următoarele caracteristici ale clasei ObjectMapper:
- Acceptă concepte avansate precum Polimorfism și Recunoașterea obiectelor.
- Este foarte personalizabil pentru a lucra cu diferite stiluri de conținut JSON.
- Funcționează ca o fabrică pentru avans ObjectReader și ObjectWriter clase.
Clasa ObjectMapper este declarată în felul următor:
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
Clase imbricate
Următorul tabel definește clasele care extind clasa ObjectMapper sau, se poate spune, clasele imbricate ale clasei ObjectMapper.
| Clasă | Descriere |
|---|---|
| DefaultTypeResolverBuilder | Este un personalizat TypeResolverBuilder clasa care este folosită pentru a obține constructorii de rezoluție de tip, cu care putem folosi „Tastare implicită”. |
| Tastare implicită | Pentru a specifica tipul de tipuri, enumerarile sunt folosite cu metoda enableDefaultTyping(). |
Acum, să înțelegem câmpurile, constructorii și metodele clasei ObjectMapper:
Câmpurile clasei ObjectMapper
protected DefaultDeserializationContext _deserializationContext
Este un obiect context de tip plan care este stocat pentru a permite subclase personalizate.
protected DeserializationConfig _deserializationConfig
Este un obiect de configurare care este utilizat pentru definirea setărilor globale de bază pentru procesul de deserializare.
protejat JsonFactory jsonFactory
Pentru a crea o instanță de JsonParser și JsonGenerator, este folosit JsonFactory.
protejate InjectableValues _injectableValues
Este un furnizor care este utilizat pentru injectarea valorilor în POJO-uri deserializate.
protejat ConfigOverrides _propertyOverrides
Este folosit pentru a accesa suprascrierile de configurare pentru fiecare tip activ în prezent.
protejate SimpleMixInResolver _mixIns
Este o mapare care este utilizată pentru a defini o modalitate de aplicare a adnotărilor mix-in. Cartografierea se face în felul următor:
Cheie: Tastați pentru a primi adnotări suplimentare.
Valoare: Tip care are adnotări pentru a „amesteca”
protejat Set _registeredModuleTypes
Este un set care definește setul de tipuri de module care au fost înregistrate.
protejat SerializationConfig _serializationConfig
Este, de asemenea, un obiect de configurare care este utilizat pentru a defini setările globale de bază pentru procesul de serializare.
protejat ConcurrentHashMap
Este o hartă care este folosită pentru a ține evidența deserializatoarelor la nivel de rădăcină. Este o hartă de nivel principal.
protejat SerializerFactory _serializerFactory
Este o fabrică care este folosită pentru a construi serializatoare.
protejat SubtypeResolver _subtypeResolver
Este folosit pentru a înregistra subtipuri și pentru a le rezolva pentru super/subtipuri după cum este necesar.
protejat TypeFactory _typeFactory
Este o fabrică care este folosită pentru a crea instanțe JavaType. Acestea sunt necesare pentru a permite modulelor să adauge mai multe tipuri de manipulare personalizate.
protected DefaultSerializerProvider _serializerProvider
Este un obiect care este responsabil pentru gestionarea accesului la serializatoarele utilizate pentru serializare.
Setări de bază statice protejate DEFAULT_BASE
Setările de bază includ valorile implicite utilizate pentru toate instanțele ObjectMapper.
Constructorii clasei ObjectMapper
Există următorii constructori ai clasei ObjectMapper:
| Constructor | Descriere |
|---|---|
| ObjectMapper() | Este un constructor implicit folosit pentru a construi o instanță care utilizează implicit JsonFactory, SerializerProvider, și BeanSerializerFactory. |
| ObjectMapper (fabrica JsonFactory) | Este folosit pentru a construi o instanță care utilizează JsonFactory dată. JsonFactory dat este folosit pentru a construi JsonParsers și/sau JsonGenerators. |
| ObjectMapper (fabrica JsonFactory, furnizor SerializerProvider1, furnizor DeserializerProvider2) | Este folosit pentru a construi o instanță care folosește data JsonFactory, SerializerProvider, și DeserializerProvider. JsonFactory dat este folosit pentru a construi JsonParsers și/sau JsonGenerators. |
| ObjectMapper protejat (Mapper ObjectMapper) | Este un constructor de copiere pentru a suporta copy(). |
Metode de clasă ObjectMapper
Clasa ObjectMapper definește următoarele metode:
| Metodă | Tip de returnare | Descriere |
|---|---|---|
| _checkInvalidCopy(Exp. clasa) | gol | Este folosit pentru a verifica o copie nevalidă. |
| _configAndWriteValue(JsonGenerator g, valoarea obiectului) | gol | Este folosit pentru configurarea generatorului atunci când este necesar și apoi pentru efectuarea funcționalității de scriere. |
| _convert(Obiect de laValue, JavaType laValueType) | Obiect | Este folosit pentru a obține implementarea reală a conversiei. Aici, metodele de citire și scriere nu sunt folosite pentru cod. |
| _initForReading(JsonParser p) | JsonToken | Este folosit pentru a se asigura dacă analizatorul dat este gata pentru citirea conținutului pentru legarea datelor sau nu. |
| _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) | JsonDeserializator | Pentru valoarea transmisă la nivel de rădăcină, dacă dorim să găsim deserializatorul, folosim această metodă. |
| _newReader (configurație DeserializationConfig) Metoda similara:
| ObjectReader | Este o metodă din fabrică, adică folosită pentru a obține instanțele ObjectReader de subtipul adecvat. Pentru a utiliza această metodă, este necesar ca subclasele să suprascrie. |
| _newWriter (configurație SerializationConfig) Metode similare:
| ObjectWriter | Este o metodă din fabrică, adică utilizată pentru a obține instanțele ObjectWriter de subtipul adecvat. Pentru a utiliza această metodă, este necesar ca subclasele să suprascrie. |
| _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) | Obiect | Este folosit pentru a obține un obiect care definește citirea valorii și operația de legare. |
| _serializerProvider(configurație SerializationConfig) | DefaultSerializerProvider | Este o metodă de ajutor care poate fi suprascrisă, care este utilizată pentru a construi SerializerProvider. |
| acceptJsonFormatVisitor(Tipul de clasă, vizitatorul JsonFormatVisitorWrapper) Metoda similara:
| gol gol | Dacă dorim să vizităm ierarhia tipurilor unui anumit tip cu vizitatorul specificat, folosim această metodă. |
| addHandler(DeserializationProblemHandler h) | ObjectMapper | Pentru a gestiona problemele specificate în timpul deserializării, folosim un DeserializationProblemHandler specificat, iar pentru a adăuga handler, folosim această metodă. |
| addMixIn(Class target, Class mixinSource) | ObjectMapper | Pentru a folosi adnotarea mix-in pentru o clasă sau o interfață de creștere specificată, folosim această metodă pentru ao adăuga. |
| canDeserialize (tip JavaType) | boolean | Este folosit pentru a verifica dacă mapper-ul poate deserializa un obiect de un tip specificat sau nu. |
| canDeserialize (tip JavaType, cauza AtomicReference) | boolean | Este similar cu metoda anterioară. Singura diferență este că poate returna throwable-ul care a fost aruncat în momentul construirii serializatorului. Aruncabilul poate fi folosit pentru a descoperi problema reală. |
| canSerialize(Tipul de clasă) | boolean | Este folosit pentru a verifica dacă mapper-ul poate serializa un obiect de un tip specificat sau nu. |
| canSerialize (Tipul de clasă, cauza AtomicReference) | boolean | Este similar cu metoda anterioară. Singura diferență este că poate returna throwable-ul care a fost aruncat în momentul construirii serializatorului. Aruncabilul poate fi folosit pentru a descoperi problema reală. |
| clearProblemHandlers() | ObjectMapper | Este una dintre metodele care este folosită pentru a elimina toate instanțele DeserializationProblemHandlers din mapper care sunt înregistrate. |
| configure(DeserializationFeature f, stare booleană) metode similare:
| ObjectMapper | Este folosit pentru a schimba starea unei funcții de deserializare activată/dezactivată, Json Generator, JsonParser, Mapper sau Serialization pentru cartografierea obiectelor, instanțe generator, instanțe parser, instanță mapper sau mapper obiect. |
| constructType(Tip t) | JavaType | Dacă vrem să construim JavaType dintr-un tip dat fără context explicit, folosim această metodă. |
| convertValue(Obiect de laValoare, Clasa laTipValoare) Metode similare:
| T | Dacă dorim să realizăm o conversie în doi pași a unei anumite valori într-o instanță a unui anumit tip de valoare, folosim metoda converValue(). |
| createArrayNode() | ArrayNode | Este folosit pentru a crea ArrayNode. |
| defaultClassIntrospector() | ClassIntrospector | Dacă dorim să folosim ClassIntrospector implicit, folosim această metodă de ajutor Overridable pentru a-l construi. |
| dezactivare (funcția de deserializare) Metode similare:
| ObjectMapper | Este folosit pentru a dezactiva date DeserializationConfig, JsonGenerator.Features pentru instanțele parserului, JsonParser.Features pentru instanțe parser ale mapperului de obiecte. |
| disableDefaultTyping() | ObjectMapper | De multe ori, trebuie să dezactivăm includerea automată a informațiilor de tip și, în acest scop, folosim această metodă. |
activare (funcție de deserializare)
| ObjectMapper | Este folosit pentru a activa DeserializationConfig, JsonGenerator.Features pentru instanțele parserului, JsonParser.Features pentru instanțele parserului ale mapperului de obiecte. |
| enableDefaultTyping() Metode similare:
| ObjectMapper | Pentru a utiliza includerea automată a informațiilor de tip pentru deserializarea tipurilor polimorfe, folosim această metodă pentru ao activa. |
| findAndRegisterModules() | ObjectMapper | Este similar cu metoda mapper.registerModules(mapper.findModules()). |
| findModule() Metode similare:
| Listă | Este folosit pentru a localiza metodele disponibile. Metoda folosește facilitatea JDK ServiceLoader cu SPI furnizat de modul. |
| getDateFormat() | Formatul datei | Este folosit pentru a obține formatul datei. |
| getDeserializationConfig() | DeserializationConfig | Este folosit pentru a obține obiectul DeserializationConfig implicit partajat. Obiectul returnat definește setările de configurare pentru deserializare. |
| getDeserializationContext() | DeserializationContext | Este folosit pentru a obține DeserializationContext curent. |
| getFactory() | JsonFactory | Dacă mapatorul trebuie să construiască un parser și generatoare Json, are nevoie de fabrica json și pentru a obține asta, folosim metoda getFactory(). |
| getInjectableValues() | Valori injectabile | Este folosit pentru a obține valori injectabile. |
| getJsonFactory() | JsonFactory | Este o metodă depreciată de a obține fabrica Json. |
| getNodeFactory() | JsonNodeFactory | Este folosit pentru a obține JsonNodeFactory care este folosit de mapator în momentul construirii directe a instanțelor rădăcină JsonNode pentru Arbore. |
| getPropertyNamingStrategy() | PropertyNamingStrategy | După cum sugerează și numele, este folosit pentru strategia de denumire a proprietății. |
| getSerializationConfig() | SerializationConfig | Este folosit pentru a obține obiectul SerializationConfig implicit partajat. Obiectul returnat definește setările de configurare pentru serializare. |
| getSerializerFactory() | SerializerFactory | Este folosit pentru a obține SerializerFactory curent. |
| getSerializerProvider() | SerializerProvider | Este un accesoriu pentru fabrică, care este folosit pentru a crea instanțe prin apelarea DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory). |
| getSerializerProviderInstance() | SerializerProvider | Este un accesoriu care este folosit pentru a construi și a returna o instanță a SerializerProvider, pe care o putem folosi pentru a accesa serializatoare. |
| getSubtypeResolver() | Subtype Resolver | Este folosit pentru a accesa solutorul de subtip în uz. |
| getTypeFactory() | TypeFactory | Este un accesoriu care este folosit pentru a obține o instanță a TypeFactory configurată în prezent. |
| getVisibilityChecker() | VisibilityChecker | Este folosit pentru a accesa verificatorul de vizibilitate configurat în prezent. |
| isEnabled(DeserializationFeature f) Metode similare:
| boolean | Metoda isEnable() și variațiile sale sunt utilizate pentru a verifica dacă caracteristica specifică deserializării, JsonFactory, JsonGenerator, JsonParser, Mapper sau Serializare este activată sau nu. |
| mixInCount() | int | Este folosit pentru a obține numărul de mixIn. |
| cititor() Metode similare:
| ObjectReader | Metoda reader() și variațiile sale sunt metodele din fabrică care sunt utilizate pentru a construi o instanță a ObjectReader. Pe baza cerinței, putem trece varianta de codificare Base64 pentru date binare codificate Base64, atribute implicite, caracteristici activate, valori injectabile, JsonNodeFactory pentru construirea arborilor JSON. |
| readerFor(Tipul de clasă) | ObjectReader | Este o metodă din fabrică care este folosită pentru a construi ObjectReader, permițând operațiuni de citire sau actualizare pentru instanțe de tipul specificat. |
| readerFor(tip JavaType) | ObjectReader | Este o metodă din fabrică care este utilizată pentru a construi ObjectReader, permițând operațiuni de citire sau actualizare pentru instanțe ale JavaType specificate. |
| readerFor(TypeReference tip) | ObjectReader | Este o metodă din fabrică care este utilizată pentru a construi ObjectReader, permițând operațiuni de citire sau actualizare pentru instanțe ale TypeReference date. |
| readerForUpdating(Valoare obiectToUpdate) | ObjectReader | Este o metodă din fabrică care este folosită pentru a construi ObjectReader permițând operațiuni de actualizare pentru obiectul dat. |
| readerWithView(Vizualizare clasă) | ObjectReader | Este o metodă din fabrică care este folosită pentru a construi ObjectReader, permițând deserializarea obiectelor cu vizualizarea JSON dată. |
readTree(conținut de octet[])
| JsonNode SAU T | ReadTree() și variațiile sale sunt folosite pentru a deserializa conținutul JSON ca arbore exprimat folosind un set de instanțe JsonNode. |
| readValue(byte[] src, Class valueType) Metode similare
| T SAU MappingIterator | ReadValue() și variațiile sale sunt folosite pentru a deserializa conținutul JSON
|
| readValues(JsonParser p, Class valueType) Metode similare:
| MappingIterator | ReadValues() și variațiile sale sunt folosite pentru a citi secvența de obiecte din fluxul de analiză. |
| registerModule(modul modul) Metode similare:
| ObjectMapper | RegisterModule() și variațiile sale sunt folosite pentru a înregistra un modul care are capacitatea de a extinde funcționalitatea oferită de mapper. |
| registerSubtypes(Tip Nume... tipuri) | gol | Este folosit pentru a înregistra clasa dată ca subtip. Făcând asta, rezoluția bazată pe nume de tip poate lega supertipuri la subtipuri. |
| setAnnotationIntrospector(AdnotationIntrospector ai) | ObjectMapper | Este folosit pentru a seta AnnotationIntrospector, care este folosit de instanța mapper atât pentru serializare, cât și pentru deserializare. |
| setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) | ObjectMapper | Este folosit pentru a schimba instanța de AnnotationIntrospector utilizată de instanța actuală de cartografiere pentru serializare și deserializare. |
| setBase64Variant(Base64Variant v) | ObjectMapper | Este folosit pentru a configura Base64Variant implicit care va fi utilizat de către serializatoarele și deserializatoarele byte[]. |
| setConfig(Configurație deserializationConfig) | ObjectMapper | Pentru a efectua suprascrierea obiectului DeserializationConfig subiacent, folosim această metodă. |
| setConfig(configurație SerializationConfig) | ObjectMapper | Pentru a efectua suprascrierea obiectului SerializationConfig subiacent care are setări de configurare specifice serializării, folosim această metodă. |
| setDateFormat(DateFormat dateFormat) | ObjectMapper | Este folosit pentru a configura DataFormat implicit pentru a-l folosi în momentul serializării valorilor de timp ca șiruri de caractere sau deserializării din șiruri JSON. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | ObjectMapper | Este folosit pentru a specifica PrettyPrinter pentru a-l folosi atunci când „imprimarea destul de implicită” este activată. |
| setDefaultTyping(TypeResolverBuilder typer) | ObjectMapper | Este folosit pentru a permite includerea automată a informațiilor de tip. |
| setHandlerInstantiator(HandlerInstantiator salut) | Obiect | Este folosit pentru a configura HandlerInstantiator pentru a fi utilizat pentru crearea instanțelor de gestionare. |
| setFilterProvider(FilterProvider filterProvider) | ObjectMapper | Este folosit pentru a configura mapatorul curent pentru a utiliza FilterProvider specificat pentru maparea ID-urilor de filtru la instanțe reale de filtru. |
| setInjectableValues(InjectableValues injectableValues) | ObjectMapper | Este folosit pentru a configura InjectableValues care este folosit pentru a găsi valori de injectat. |
| setLocale(Local l) | ObjectMapper | Este folosit pentru a suprascrie localitatea implicită de utilizat pentru formatare. |
| setMixInResolver(ClassIntrospector.MixInResolver resolve) | ObjectMapper | Folosim această metodă pentru a specifica rezolutorul dat pentru a localiza clasele mix-in de utilizat, suprascriind mapările adăugate direct. |
| setMixInAnnotations(Hartă | gol | Este o metodă amortizată pentru definirea adnotărilor mix-in. |
| setNodeFactory(JsonNodeFactory f) | ObjectMapper | Este folosit pentru a specifica JsonNodeFactory de utilizat pentru construirea nodurilor de arbore la nivel de rădăcină. |
| setMixIns(Hartă | ObjectMapper | Este folosit pentru a defini adnotările mix-in care să fie utilizate pentru amplificarea adnotărilor pe care le au clasele procesabile. |
| setPropertyInclusion(JsonInclude.Value incl) | ObjectMapper | Este folosit pentru a seta strategia implicită de includere a proprietăților POJO pentru serializare. |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | ObjectMapper | Este folosit pentru a seta strategia personalizată de denumire a proprietăților de utilizat. |
| setSerializerFactory(SerializerFactory f) | ObjectMapper | Este folosit pentru a seta SerializerFactory specifică pe care să o folosească pentru construirea de serializatoare (fasole). |
| setSerializerProvider(DefaultSerializerProvider p) | ObjectMapper | Este folosit pentru a seta instanța SerializerProvider „blueprint” pentru a o folosi ca bază pentru instanțe efective ale furnizorului de utilizat pentru gestionarea stocării în cache a instanțelor JsonSerializer. |
| setSubtypeResolver(SubtypeResolver str) | ObjectMapper | Este folosit pentru a seta soluția de subtip personalizat de utilizat. |
| setTimeZone(TimeZone tz) | ObjectMapper | Este folosit pentru a suprascrie fusul orar prestabilit de utilizat pentru formatare. |
| setTypeFactory(TypeFactory f) | ObjectMapper | Este folosit pentru a suprascrie instanța TypeFactory, care este folosită de mapatorul curent. |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility)
| ObjectMapper | SetVisibility() și variația acestuia sunt folosite pentru a seta VisibilityChecker configurat în prezent. Instanța ObjectMapper returnată este utilizată pentru a verifica dacă elementul de proprietate dat poate fi detectat automat sau nu. |
| treeAsTokens(TreeNode n) | JsonParser | Este folosit pentru a construi un JsonParser din reprezentarea arborelui JSON. |
| treeToValue(TreeNode n, Class valueType) | T | Este folosit pentru a lega datele pe care arborele JSON le conține într-un anumit tip de valoare. |
| versiune() | Versiune | Este folosit pentru a obține informațiile despre versiune stocate și citite din borcanul care conține această clasă. |
scriitor()
| ObjectWriter | Scrie () și variațiile sale sunt folosite pentru a construi ObjectWriter cu setări implicite, având în vedere varianta de codificare Base64 pentru date binare codificate în Base64, detalii de evadare a caracterelor pentru ieșire, atribute implicite, DateFormat, furnizor de filtru, obiect de schemă la JsonGenerator utilizat pentru scrierea conținutului, imprimantă frumoasă pentru indentare sau funcția activată. |
| writerFor(Class rootType) - | ObjectWriter | Este folosit pentru a construi ObjectWriter pentru serializarea obiectelor folosind un tip de rădăcină specificat în loc de tipul real de valoare de rulare. |
| writerFor(JavaType rootType) | ObjectWriter | Este folosit pentru a construi ObjectWriter pentru serializarea obiectelor folosind un tip de rădăcină specificat în loc de tipul real de valoare de rulare. |
| writerFor(TypeReference rootType) | ObjectWriter | Este folosit pentru a construi ObjectWriter pentru serializarea obiectelor folosind un tip de rădăcină specificat în loc de tipul real de valoare de rulare. |
| writerWithDefaultPrettyPrinter() | ObjectWriter | Este o metodă din fabrică care este folosită pentru a construi ObjectWriter pentru serializarea obiectelor folosind imprimanta destul de implicită pentru indentare. |
writerWithType (Tip rădăcină de clasă)
| ObjectWriter | Aceste metode sunt amortizate și, în locul lor, folosim metoda writerFor(TypeReference). |
| writerWithView(Vizualizare serializare clasă) | ObjectWriter | Este o metodă din fabrică care este utilizată pentru a construi ObjectWriter pentru serializarea obiectelor folosind vizualizarea JSON specificată. |
| writeTree(JsonGenerator jgen, JsonNode rootNode) | gol | Este folosit pentru serializarea arborelui JSON furnizat folosind JsonGenerator dat. |
| writeValue(Fișier rezultatFile, Object value) | gol | Este folosit pentru a serializa valoarea Java ca ieșire JSON și pentru a o scrie în datele date fişier. |
| writeValue(JsonGenerator g, valoare obiect). | gol | Este folosit pentru a serializa valorile Java ca ieșire JSON folosind datele date JsonGenerator. |
| writeValue(OutputStream out, valoare obiect) | gol | Este folosit pentru a serializa valoarea Java ca ieșire JSON utilizând valoarea dată OutputStream. |
| writeValue(Writer w, valoare obiect) | gol | Este folosit pentru a serializa valorile Java ca ieșire JSON folosind datele date Scriitor. |
| writeValueAsBytes(Valoare obiect) | octet[] | Este folosit pentru serializarea valorilor Java ca o matrice de octeți. |
| writeValueAsString(Valoare obiect) | Şir | Este folosit pentru serializarea valorilor Java ca șir. |
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+ ' ]'; } } Ieșire: