Serialización del objeto de Jackson
Aquí presentaremos los objetos Java de serialización a un archivo JSON y luego leeremos el archivo JSON para convertirse en un objeto. En este ejemplo, se crea la clase de estudiantes. Cree un objeto estudiantil que se representará en JSON en un archivo Student.json.
Cree un archivo de clase Java llamado JackSontester en c:/> Jackson_workspace.
Archivo: JackSontester.java
import java.io.file; import java.io.ioException; import org.codehaus.jackson.jsoneNationException; import org.codehaus.jackson.jsonparseException; import org.codehaus.jackson.map.jsonmappingexception; import void main (string args []) {JackSontester tester = new JackSontester (); intente {estudiante estudiante = nuevo estudiante (); estudiante.setage (10); Student.SetName ("Mahesh"); Tester.Writejson (estudiante); Student Student1 = tester.readjson (); System.out.println (Student1); } Catch (JSONParseException e) {E.PrintStackTrace (); } Catch (JSONMappingException e) {E.PrintStackTrace (); } catch (ioException e) {E.PrintStackTrace (); }} private void writejson (estudiante estudiante) lanza JSongenerationException, jsonmappingException, ioexception {ObjectMapper mapper = new ObjectMapper (); mapper.writevalue (nuevo archivo ("student.json"), estudiante); } Private Student Readjson () lanza jsonparseException, jsonmappingException, ioException {ObjectMapper mapper = new ObjectMapper (); Estudiante estudiante = mapper.readValue (nuevo archivo ("student.json"), student.class); Estudiante de regreso; }} estudiante de clase {nombre de cadena privada; edad privada int; Public Student () {} public String getName () {Return Name; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; } public String toString () {return "Student [nombre:"+ nombre+ ", edad:"+ edad+ "]"; }}Resultados de verificación
Use Javac para compilar la siguiente clase:
La copia del código es la siguiente:
C:/jackson_workspace> javac jacksontester.java
Ahora corre JackSontester para ver el resultado:
La copia del código es la siguiente:
C:/jackson_workspace> java jacksontester
El resultado de salida de verificación se copia de la siguiente manera:
Estudiante [Nombre: Mahesh, Edad: 10]
Jackson Data vinculante genéricos
En el enlace de datos simple, usamos String como objeto clave y asignamos la clase como un objeto de valor. En cambio, podemos usar objetos y tipos de Java específicos para lanzar a JSON.
Considere el siguiente ejemplo utilizando un Data de usuario de clase para guardar datos específicos del usuario.
Cree un directorio llamado JackSontester en el archivo de clase Java c:/> jackson_workspace.
Nombre del archivo: JackSontester.java
import java.io.file; import java.io.ioException; import java.util.arrays; import java.util.hashmap; import java.util.list; import java.util.map; importar org.codehaus.jackson.jsongenerationException; import org.codehaus.jackson.jsonparsexception; org.codehaus.jackson.map.jsonmappingexception; import org.codehaus.jackson.map.objectMapper; importar org.codehaus.jackson.type.tyPereference; public class JackSontester {public static void Main (args de cadena []) {JackSontester Tester = New Jacksontester (); intente {ObjectMapper mapper = new ObjectMapper (); Map userDatamap = new Hashmap (); UserData studentData = new UserData (); int [] Marks = {1,2,3}; Estudiante estudiante = nuevo estudiante (); estudiante.setage (10); Student.SetName ("Mahesh"); // Java Object studentData.setStudent (estudiante); // java string studentData.setName ("Mahesh Kumar"); // java boolean studentData.setVerified (boolean.false); // matriz studentData.setMarks (marcas); TypeReference ref = new typereference> () {}; userDatamap.put ("StudentData1", StudentData); mapper.writevalue (nuevo archivo ("student.json"), userDatamap); // {// "StudentData1": // {///"estudiante": // {// "name": "Mahesh", // "edad": 10 //}, // "nombre" Archivo ("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 (); }}} Clase Student {Nombre de cadena privada; edad privada int; Public Student () {} public String getName () {Return Name; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; } public String toString () {return "Student [nombre:"+ nombre+ ", edad:"+ edad+ "]"; }} Class UserData {Estudiante privado de estudiante; nombre de cadena privada; booleano privado verificado; Marcas privadas int []; Public UserData () {} Public Student getStudent () {return Student; } public void setStudent (estudiante estudiante) {this.student = student; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public boolean getverified () {return verificado; } public void setverified (boolean verificado) {this.verified = verificado; } public int [] getMarks () {return Marks; } public void setMarks (int [] marks) {this.marks = marks; }}Verificar la salida
Use Javac para compilar la siguiente clase:
La copia del código es la siguiente:
C:/jackson_workspace> javac jacksontester.java
Ahora corre JackSontester para ver el resultado:
La copia del código es la siguiente:
C:/jackson_workspace> java jacksontester
Verificar la salida
Estudiante [Nombre: Mahesh, Edad: 10] Mahesh Kumarfalse [1, 2, 3]