O primeiro programa de Jackson
Antes de inserir os detalhes do aprendizado da biblioteca Jackson, vamos dar uma olhada nos recursos de operação do aplicativo. Neste exemplo, criamos uma aula de estudante. Uma string json será criada e desapegada ao objeto do aluno e, em seguida, serializada para a string json.
Crie um arquivo de classe Java chamado Jacksontester C:/> Jackson_workspace.
Arquivo: Jacksontester.java
importar java.io.ioException; importar org.codehaus.jackson.jsonparseException; importar org.codehaus.jackson.map.jsonmappingException; importação org.codehaus.jackson.map.objectMapper; plouptyern (publichan.Jackson.Map.Map.Sialization.Map.Bjig; ObjectMapper Mapper = new ObjectMapper (); String jSonstring = "{/" name/":/" mahesh/",/" Age/": 21}"; // Mapeie JSON para o aluno Experimente {Student Student = mapper.readValue (JSonstring, Student.class); System.out.println (aluno); mapper.enable (serializationConfig.feature.indent_output); JSonstring = Mapper.WriteValuEasString (aluno); System.out.println (JSonstring); } 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+ "]"; }}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
Verifique a saída
Aluno [Nome: Mahesh, Idade: 21] {"Nome": "Mahesh", "Age": 21}Etapas - aqui estão as etapas importantes a serem consideradas aqui.
Etapa 1: Crie um objeto ObjectMapper.
Crie um objeto ObjectMapper. É um objeto reutilizável. /
A cópia do código é a seguinte:
ObjectMapper Mapper = new ObjectMapper ();
Etapa 2: Desserialize JSON para o objeto.
Use o método readValue () para obter do objeto JSON. JSON String/Source é passada como parâmetro json string e tipo de objeto.
// Objeta -se ao JSON ConversionStudent Student = Mapper.readValue (JSonstring, Student.class);
Etapa 3: serialize o objeto para JSON.
Use o método writeValuEasString () para obter a representação de string json do objeto.
// Objeto de conversão JSON jSonstring = mapper.WriteValuEasString (aluno);
Jackson Tree Model
O modelo de árvore prepara a representação da árvore de memória do arquivo JSON. O ObjectMapper constrói a árvore do nó JsonNode. Esta é a abordagem mais flexível. É semelhante ao XML do analisador DOM.
Crie uma árvore de JSON
O ObjectMapper fornece um nó de raiz de árvore de ponteiro depois de ler JSON. O nó raiz pode ser usado para atravessar a árvore completa. Considere o seguinte snippet de código para obter o nó raiz que fornece a string json.
// Crie um objectMapper InstanceObjectMapper Mapper = new ObjectMapper (); String jSonstring = "{/" name/":/" mahesh kumar/",/" idade/": 21,/" verificado/": false,/" Marks/": [100,90,85]}"; // cria árvore a partir de jsonjsonnode rootnode = mappper.readree (jSonstring); Modelo de árvore de travessia
Use caminhos relativos no nó raiz na árvore de travessia e processe os dados para obter cada nó. Considere o seguinte snippet de snippet percorrer a árvore do nó raiz fornecido.
JsonNode nameNode = rootnode.path ("name"); system.out.println ("nome:"+ namenode.getTextValue ()); JsonNode MarksNode = rootnode.path ("Marks"); Iterator iterator = marksnode.getElements ();O exemplo cria um diretório de arquivos chamado JackSontester no Java Classe C:/> Jackson_workspace.
Arquivo: Jacksontester.java
import java.io.IOException;import java.util.Iterator;import org.codehaus.jackson.JsonNode;import org.codehaus.jackson.JsonParseException;import org.codehaus.jackson.map.JsonMappingException;import org.codehaus.jackson.map.ObjectMapper;public class JacksonTester { public static void main(String args []) {Jacksontester tester = new JackSontester (); tente {objectMapper mapper = new objectMapper (); String jSonstring = "{/" name/":/" mahesh kumar/",/" idade/": 21,/" verificado/": false,/" Marks/": [100,90,85]}"; JsonNode rootNode = mappper.readTree (JSonstring); JsonNode namenode = rootnode.path ("nome"); System.out.println ("nome:"+ namenode.getTextValue ()); JsonNode agenode = rootnode.path ("idade"); System.out.println ("Age:" + agenode.getIntValue ()); JsonNode verifiedNode = rootnode.path ("verificado"); System.out.println ("Verificado:" + (verificadonode.getBooleanValue ()? "Sim": "Não")); JsonNode MarksNode = rootnode.path ("Marks"); Iterator <jsonnode> iterator = marksnode.getElements (); System.out.print ("Marcas: ["); while (iterator.hasnext ()) {jsonNode Marks = iterator.Next (); System.out.print (marks.getIntValue () + ""); } System.out.println ("]"); } catch (jsonparseException e) {e.printStackTrace (); } catch (jsonMappingException e) {E.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }}}Verifique o resultado da 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
Nome: Mahesh Kumarage: 21Verificado: Nomarks: [100 90 85]
Conversão de árvore para JSON
Neste exemplo, usamos o JSONNode e o escrevemos para um arquivo JSON e lemos de volta para criar uma árvore.
Crie um diretório chamado JackSontester no arquivo Java Class C:/> Jackson_workspace.
Arquivo: Jacksontester.java
importar java.io.file; importar java.io.ioexception; importar java.util.iterator; importar org.codehaus.jackson.jsonnode; importar org.codehaus.jackson.jsonparseexception; importar org.codehaus.jackson.map.map.MapMevCexception; org.codehaus.jackson.node.arraynode; importar org.codehaus.jackson.node.objectNode; public class Jacksontester {public static void main (string args []) {Jacksontester tester = new JackSontester (); tente {objectMapper mapper = new objectMapper (); JsonNode rootNode = mapper.createObjectNode (); JsonNode MarksNode = mapper.createArrayNode (); ((ArrayNode) MarksNode) .Add (100); ((ArrayNode) MarksNode) .Add (90); ((ArrayNode) MarksNode) .Add (85); (((ObjectNode) rootNode) .put ("nome", "mahesh kumar"); ((ObjectNode) rootNode) .put ("idade", 21); ((ObjectNode) rootNode) .put ("verificado", false); ((ObjectNode) rootNode) .put ("Marcas", MarksNode); mapper.WriteValue (novo arquivo ("Student.json"), rootNode); rootNode = mapper.readTree (novo arquivo ("student.json")); JsonNode namenode = rootnode.path ("nome"); System.out.println ("nome:"+ namenode.getTextValue ()); JsonNode agenode = rootnode.path ("idade"); System.out.println ("Age:" + agenode.getIntValue ()); JsonNode verifiedNode = rootnode.path ("verificado"); System.out.println ("Verificado:" + (verificadonode.getBooleanValue ()? "Sim": "Não")); JsonNode MarksNode1 = RootNode.Path ("Marks"); Iterator <jsonnode> iterator = marksnode1.getElements (); System.out.print ("Marcas: ["); while (iterator.hasnext ()) {jsonNode Marks = iterator.Next (); System.out.print (marks.getIntValue () + ""); } System.out.println ("]"); } catch (jsonparseException e) {e.printStackTrace (); } catch (jsonMappingException e) {E.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }}}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
Verifique a saída
Nome: Mahesh Kumar
Idade: 21
Verificado: Não
Marcas: [100 90 85]
Conversão de árvore em objeto Java
Neste exemplo, usamos o JSONNode e o escrevemos em um arquivo JSON e lemos de volta e depois convertemos um objeto de estudante para criar uma árvore.
Crie um diretório chamado JackSontester no arquivo Java Class C:/> Jackson_workspace.
Arquivo: Jacksontester.java
importar java.io.file; importar java.io.ioException; importar java.util.arrays; importar org.codehaus.jackson.jsonnode; importar org.codehaus.jackson.jsonparseException; importar org.codehaus.map.map.map.MapMexception; org.codehaus.jackson.node.arraynode; importar org.codehaus.jackson.node.objectNode; public class Jacksontester {public static void main (string args []) {Jacksontester tester = new JackSontester (); tente {objectMapper mapper = new objectMapper (); JsonNode rootNode = mapper.createObjectNode (); JsonNode MarksNode = mapper.createArrayNode (); ((ArrayNode) MarksNode) .Add (100); ((ArrayNode) MarksNode) .Add (90); ((ArrayNode) MarksNode) .Add (85); (((ObjectNode) rootNode) .put ("nome", "mahesh kumar"); ((ObjectNode) rootNode) .put ("idade", 21); ((ObjectNode) rootNode) .put ("verificado", false); ((ObjectNode) rootNode) .put ("Marcas", MarksNode); mapper.WriteValue (novo arquivo ("student.json"), rootnode); rootNode = mapper.readTree (novo arquivo ("student.json")); Aluno estudante = mapper.Treetovalue (rootnode, student.class); System.out.println ("Nome:"+ Student.getName ()); System.out.println ("Age:" + student.getage ()); System.out.println ("Verificado:" + (Student.isverified ()? "Sim": "Não")); System.out.println ("Marks:"+Arrays.toString (Student.getmarks ())); } catch (jsonparseException e) {e.printStackTrace (); } catch (jsonMappingException e) {E.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); }}} classe Student {Nome da String; Int Age; Booleano verificado; Int [] marcas; public String getName () {Return Name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } public boolean iSverified () {return verificado; } public void setVerificado (boolean verificado) {this.verified = verificado; } public int [] getmarks () {return Marks; } public void Setmarks (int [] Marks) {this.marks = Marks; }}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
Verifique a saída
Nome: Mahesh Kumarage: 21Verificado: Nomarks: [100 90 85]