Serialização do objeto Jackson
Aqui, introduziremos serializando objetos Java em um arquivo JSON e, em seguida, lendo o arquivo JSON para ser convertido em um objeto. Neste exemplo, a aula do aluno é criada. Crie um objeto de estudante que será representado no JSON em um arquivo student.json.
Crie um arquivo de classe Java chamado JackSontester em C:/> Jackson_workspace.
Arquivo: Jacksontester.java
importar java.io.file; importar java.io.ioException; importar org.codehaus.jackson.jsongenorationException; importar org.codehaus.jackson.jsonparseexception; importematsratsort.codehaus.jackson.map.jsonMapseption; importepsepth; args []) {Jacksontester tester = new JackSontester (); tente {estudante estudante = novo aluno (); Student.setage (10); estudante.setName ("mahesh"); tester.writejson (estudante); Aluno aluno1 = tester.readjson (); System.out.println (Student1); } catch (jsonparseException e) {e.printStackTrace (); } catch (jsonMappingException e) {E.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }} private void writejson (aluno) lança JSongEneraçãoException, JSONMAPPINGEXCECTION, IOException {ObjectMapper mapper = new ObjecjotMapper (); Mapper.WriteValue (novo arquivo ("Student.json"), aluno); } estudante privado readjson () lança jsonparseexception, jsonmappingException, ioexception {objectmapper mapper = new objectMapper (); Estudante estudante = mapper.readValue (novo arquivo ("student.json"), student.class); aluno de retorno; }} classe Student {private String Name; private Int Age; public Student () {} public String getName () {Nome de retorno; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } public string tostring () {return "Student [nome:"+ nome+ ", idade:"+ idade+ "]"; }}Resultados da verificação
Use Javac para compilar a seguinte classe:
A cópia do código é a seguinte:
C:/Jackson_workspace> javac jacksontester.java
Agora execute Jacksontoster para ver o resultado:
A cópia do código é a seguinte:
C:/Jackson_workspace> Java Jacksontester
O resultado da saída de verificação é copiado da seguinte maneira:
Aluno [Nome: Mahesh, idade: 10]
Jackson Data Binding Generics
Na simples ligação de dados, usamos a string como o objeto principal e mapeamos a classe como um objeto Valor. Em vez disso, podemos usar objetos e tipos java específicos para lançar para o JSON.
Considere o exemplo a seguir usando um Data UserData para salvar dados específicos do usuário.
Crie um diretório chamado JackSontester no arquivo Java Class C:/> Jackson_workspace.
Nome do arquivo: jacksontester.java
importar java.io.file; importar java.io.ioException; importar java.util.arrays; importar java.util.hashmap; importar java.util.list; importar java.util.map; org.codehaus.jackson.map.jsonmappingException; importar org.codehaus.jackson.map.objectmapper; importar org.codehaus.jackson.type.typereference; classe pública JackSontester {public static void main (string args []) {JackSonter = New JackSontester; tente {objectMapper mapper = new objectMapper (); Mapa userdatamap = new hashmap (); UserData studentData = novo userData (); int [] marks = {1,2,3}; Estudante estudante = novo aluno (); Student.setage (10); estudante.setName ("mahesh"); // java objeto studentData.setStudent (estudante); // java string studentData.setName ("mahesh kumar"); // java boolean studentData.setVerified (boolean.false); // Array StudentData.setmarks (Marks); TypeReference ref = new TypeReference> () {}; userDatamap.put ("StudentData1", StudentData); mapper.WriteValue (novo arquivo ("Student.json"), UserDATAMAP); // {// "StudentData1": // {// "Student": // {// "name": "mahesh", // "Age": 10 //}, // "name": "mahesh kumar", // "verificado": false, // "marks": [1,2,3]/}} // Arquivo ("student.json"), ref); System.out.println (userDatamap.get ("StudentData1"). GetStudent ()); System.out.println (userDatamap.get ("StudentData1"). GetName ()); System.out.println (userDatamap.get ("StudentData1"). GetVerified ()); System.out.println (Arrays.toString (userDatamap.get ("StudentData1"). Getmarks ())); } catch (jsonparseException e) {e.printStackTrace (); } catch (jsonMappingException e) {E.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }}} classe Student {private String Name; private Int Age; public Student () {} public String getName () {Nome de retorno; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } public string tostring () {return "Student [nome:"+ nome+ ", idade:"+ idade+ "]"; }} classe UserData {estudante privado; nome de string privado; Privado booleano verificado; Private Int [] Marcas; public userData () {} public student getStudent () {return student; } public void setStudent (aluno) {this.student = student; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public boolean getVerified () {return verificado; } public void setVerificado (boolean verificado) {this.verified = verificado; } public int [] getmarks () {return Marks; } public void Setmarks (int [] Marks) {this.marks = Marks; }}Verifique a saída
Use Javac para compilar a seguinte classe:
A cópia do código é a seguinte:
C:/Jackson_workspace> javac jacksontester.java
Agora execute Jacksontoster para ver o resultado:
A cópia do código é a seguinte:
C:/Jackson_workspace> Java Jacksontester
Verifique a saída
Aluno [Nome: Mahesh, idade: 10] Mahesh Kumarfalse [1, 2, 3]