Boon - Guia Rápido

Booné um kit de ferramentas simples baseado em Java para JSON. Você pode usar Boon JSON para codificar ou decodificar dados JSON de maneira eficiente e rápida.

Características do Boon

Os recursos do Boon são explicados abaixo -

  • Fast - Boon JSON é mais rápido na serialização de objetos, habilitando JSON Expression e JSON Parsing em comparação com Jackson.

  • Lightweight - Possui poucas classes e fornece as funcionalidades necessárias, como codificação / decodificação de mapeamento de objetos.

  • Data Binding - A maioria das operações é feita usando vinculação de dados e sobreposição de índice.

  • No public tree model - A visão do usuário final é a visão de vinculação de dados.

  • Supports simple data binding - Fornece vinculação de dados com primitivos, bem como boxing automático.

  • High performance - O analisador baseado em heap é usado e fornece alto desempenho.

  • No dependency- Sem dependência de biblioteca externa. Pode ser incluído de forma independente.

  • JDK1.2 compatible - O código-fonte e o binário são compatíveis com JDK1.2

Neste capítulo, aprenderemos sobre a configuração do ambiente local do Boon e como configurar o caminho do Boon para Windows 2000 / XP, Windows 95/98 / ME etc. Também entenderemos sobre alguns editores java populares e como fazer o download Arquivo Boon.

Configuração de ambiente local

Se você ainda deseja configurar seu ambiente para a linguagem de programação Java, este capítulo o guiará sobre como baixar e configurar o Java em sua máquina. Siga as etapas mencionadas abaixo para configurar o ambiente.

Java SE está disponível gratuitamente no link www.oracle.com/java/technologies/oracle-java-archive-downloads.html . Então você baixa uma versão com base em seu sistema operacional.

Siga as instruções para baixar o Java e executar o .exepara instalar o Java em sua máquina. Depois de instalar o Java em sua máquina, você precisará definir variáveis ​​de ambiente para apontar para os diretórios de instalação corretos -

Caminho para Windows 2000 / XP

Estamos assumindo que você instalou o Java em c:\Program Files\java\jdk diretório -

  • Clique com o botão direito em 'My Computer' e selecione 'Properties'.

  • Clique no 'Environment variables' botão sob o 'Advanced' aba.

  • Agora, altere a variável 'Path' para que também contenha o caminho para o executável Java. Exemplo, se o caminho está atualmente definido para'C:\WINDOWS\SYSTEM32', então mude seu caminho para ler 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Caminho para Windows 95/98 / ME

Estamos assumindo que você instalou o Java em c:\Program Files\java\jdk diretório -

  • Edite o arquivo 'C: \ autoexec.bat' e adicione a seguinte linha no final - 'SET PATH =% PATH%; C: \ Arquivos de programas \ java \ jdk \ bin'

Caminho para Linux, UNIX, Solaris, FreeBSD

A variável de ambiente PATH deve ser definida para apontar para onde os binários Java foram instalados. Consulte a documentação do shell se tiver problemas para fazer isso.

Por exemplo, se você usar bash como seu shell, então você adicionaria a seguinte linha ao final de seu '.bashrc: export PATH = / path / to / java: $ PATH'

Editores Java populares

Para escrever seus programas Java, você precisa de um editor de texto. Existem muitos IDEs sofisticados disponíveis no mercado. Mas, por enquanto, você pode considerar um dos seguintes -

  • Notepad - Na máquina Windows você pode usar qualquer editor de texto simples como o Notepad (recomendado para este tutorial), TextPad.

  • Netbeans- É um IDE Java de código aberto e gratuito que pode ser baixado em www.netbeans.org/index.html .

  • Eclipse- Também é um IDE Java desenvolvido pela comunidade de código aberto eclipse e pode ser baixado de www.eclipse.org .

Baixar Arquivo Boon

Baixe a versão mais recente do arquivo Boon jar em Maven Repository - Boon. que está disponível emhttps://mvnrepository.com/artifact/io.fastjson/boon. Neste tutorial, boon-0.34.jar é baixado e copiado para a pasta C: \> boon.

SO Nome do arquivo
janelas boon-0.34.jar
Linux boon-0.34.jar
Mac boon-0.34.jar

Definir ambiente favorável

Colocou o BOONvariável de ambiente para apontar para o local do diretório base onde Boon jar está armazenado em sua máquina. Supondo que extraímosboon-0.34.jar na pasta Boon em vários sistemas operacionais da seguinte maneira.

SO Resultado
janelas Defina a variável de ambiente BOON para C: \ Boon
Linux export BOON = / usr / local / Boon
Mac export BOON = / Library / Boon

Definir variável CLASSPATH

Colocou o CLASSPATHvariável de ambiente para apontar para o local do Boon jar. Supondo que você tenha armazenado boon-0.34.jar na pasta Boon em vários sistemas operacionais como segue.

SO Resultado
janelas Defina a variável de ambiente CLASSPATH como% CLASSPATH%;% Boon% \ boon-0.34.jar;.;
Linux export CLASSPATH = $ CLASSPATH: $ BOON / boon-0.34.jar :.
Mac export CLASSPATH = $ CLASSPATH: $ BOON / boon-0.34.jar :.

ObjectMapperé a classe de ator principal da biblioteca Boon. A classe ObjectMapper fornece funcionalidade para ler e gravar JSON, de e para POJOs básicos (Plain Old Java Objects), ou de e para um JSON Tree Model (JsonNode) de uso geral, bem como funcionalidades relacionadas para realizar conversões.

Também é altamente personalizável para trabalhar com diferentes estilos de conteúdo JSON e para suportar conceitos de objeto mais avançados, como polimorfismo e identidade de objeto.

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para analisar uma string JSON para um Objeto de Aluno.

import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]){
      ObjectMapper mapper = JsonFactory.create();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";

      Student student = mapper.readValue(jsonString, Student.class);
      System.out.println(student);
   }
}
class Student {
   private String name;
   private int age;
   public Student(){}
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String toString(){
      return "Student [ name: "+name+", age: "+ age+ " ]";
   }
}

Resultado

O resultado é mencionado abaixo -

Student [ name: Mahesh, age: 21 ]

ObjectMapper A classe também pode ser usada para analisar um objeto json to Map em vez de um objeto POJO.

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para analisar uma sequência JSON para um Objeto de Mapa.

import java.util.Map;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.create();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      Map studentMap = mapper.readValue(jsonString, Map.class);
      System.out.println("Name: " + studentMap.get("name"));
      System.out.println("Age: " + studentMap.get("age"));
   }
}

Resultado

O resultado é dado abaixo -

Name: Mahesh
Age: 21

ObjectMapperclasse pode ser usada para analisar um json de várias fontes. Ele pode usar as seguintes fontes para analisar JSON.

  • byte Array

  • Char Array

  • File

  • Aulas de leitura

  • Classes de fluxo de entrada

  • String

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para analisar uma matriz JSON char para um objeto de mapa.

import java.util.Map;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]){
      ObjectMapper mapper = JsonFactory.create();
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
      char[] jsonCharAray = jsonString.toCharArray();
      Map studentMap = mapper.readValue(jsonCharAray, Map.class);
      System.out.println("Name: " + studentMap.get("name"));
      System.out.println("Age: " + studentMap.get("age"));
   }
}

Resultado

Você verá a seguinte saída -

Name: Mahesh
Age: 21

ObjectMapper classe pode ser usada para gerar uma string json de um objeto.

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para gerar uma sequência JSON a partir de um objeto Student.

import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]){
      ObjectMapper mapper = JsonFactory.create();      
      Student student = new Student("Mahesh", 21);
      String jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);
   }
}
class Student {
   public String name;
   public int age;
   public Student(String name, int age) {
      this.name = name;
      this.age = age;
   }
}

Resultado

Isso produz a seguinte saída -

{"name":"Mahesh","age":21}

ObjectMapper classe pode ser usada para gerar uma string json de um mapa.

Exemplo

O exemplo a seguir é usar a classe ObjectMapper para gerar uma sequência JSON a partir de um objeto de mapa.

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]){
      ObjectMapper mapper = JsonFactory.create();      
      Map<String, String> student = new HashMap<>();
      student.put("Name", "Mahesh");
      student.put("RollNo", "21");
      
      Map<String, String> student1 = new HashMap<>();
      student1.put("Name", "Suresh");
      student1.put("RollNo", "22");
      
      List<Map<String,String>> studentList = new ArrayList<>();
      studentList.add(student);
      studentList.add(student1);
      
      Map<String, List> studentMap = new HashMap<String, List>();
      studentMap.put("students", studentList);
      
      String jsonString = mapper.writeValueAsString(studentMap);
      System.out.println(jsonString);
   }
}

Resultado

Ao executar o código acima, você verá a seguinte saída -

{"students":[{"RollNo":"21","Name":"Mahesh"},{"RollNo":"22","Name":"Suresh"}]}

ObjectMapperclasse pode ser usada para trabalhar com diferentes formatos de data em JSON. Ele pode ser usado para analisar / gerar uma versão longa da data.

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para gerar uma sequência de Data a partir de uma versão longa.

import java.util.Date;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.create();      
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21, \"dateOfBirth\":976559400000}";
      
      //mapper converts long to date automatically
      Student student = mapper.readValue(jsonString, Student.class);
      System.out.println(student.dateOfBirth);    
      
      //by default mapper converts date to long
      jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);    
   }
}
class Student {
   public String name;
   public int age;
   public Date dateOfBirth;
   
   public Student(String name, int age, Date dateOfBirth) {
      this.name = name;
      this.age = age;
      this.dateOfBirth = dateOfBirth;
   }
}

Resultado

A seguir está a saída do código -

Tue Dec 12 00:00:00 IST 2000
{"name":"Mahesh","age":21,"dateOfBirth":976559400000}

ObjectMapperclasse pode ser usada para trabalhar com diferentes formatos de data em JSON. Ele pode ser usado para analisar / gerar a versão String da data.

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para gerar uma sequência de Data a partir de uma versão de Sequência.

import java.util.Date;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.create();      
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21, \"dateOfBirth\":\"1998-08-11T11:31:00.034Z\" }";
      
      // mapper converts String to date automatically
      Student student = mapper.readValue(jsonString, Student.class);
      System.out.println(student.dateOfBirth);    
      
      // by default mapper converts date to long
      jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);    
   }
}
class Student {
   public String name;
   public int age;
   public Date dateOfBirth;
   
   public Student(String name, int age, Date dateOfBirth) {
      this.name = name;
      this.age = age;
      this.dateOfBirth = dateOfBirth;
   }
}

Resultado

Ao executar o código acima, você verá a seguinte saída -

Tue Aug 11 17:01:00 IST 1998
{"name":"Mahesh","age":21,"dateOfBirth":902835060034}

ObjectMapperclasse pode ser usada para trabalhar com diferentes formatos de data em JSON. Ele também pode ser usado para gerar o objeto de data. Por padrão, o ObjectMapper gera Data em uma versão de milissegundos longos. Usando ObjectMapper retornado pelo método JsonFactory.createUseJSONDates (), podemos obter uma versão de string de data durante a análise.

Exemplo

O exemplo a seguir está usando a classe ObjectMapper para gerar uma sequência de dados por meio da análise de JSON.

import java.util.Date;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.createUseJSONDates();     
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21, \"dateOfBirth\":\"1998-08-11T11:31:00.034Z\" }";
      
      //mapper converts String to date automatically
      Student student = mapper.readValue(jsonString, Student.class);
      System.out.println(student.dateOfBirth);    
      
      //Mapper converts date to date string now
      jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);    
   }
}
class Student {
   public String name;
   public int age;
   public Date dateOfBirth;
   public Student(String name, int age, Date dateOfBirth) {
      this.name = name;
      this.age = age;
      this.dateOfBirth = dateOfBirth;
   }
}

Resultado

Você receberá a seguinte saída -

Tue Aug 11 17:01:00 IST 1998
{"name":"Mahesh","age":21,"dateOfBirth":"1998-08-11T11:31:00.034Z"}

@JsonIgnore é usado no nível do campo para marcar uma propriedade ou lista de propriedades a serem ignoradas.

Exemplo - @JsonIgnore

O exemplo a seguir é para @JsonIgnore -

import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;
import org.boon.json.annotations.JsonIgnore;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.create();      
      Student student = new Student(1,11,"1ab","Mark");  
      String jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);    
   }
}
class Student {
   public int id;
   @JsonIgnore
   public String systemId;
   public int rollNo;
   public String name;

   Student(int id, int rollNo, String systemId, String name) {
      this.id = id;
      this.systemId = systemId;
      this.rollNo = rollNo;
      this.name = name;
   }
}

Resultado

Você verá a seguinte saída -

{"id":1,"rollNo":11,"name":"Mark"}

@JsonInclude é usado para incluir propriedades com valores nulos / vazios ou padrão. Por padrão, o Boon ignora essas propriedades durante a serialização / desserialização.

Exemplo - @JsonInclude

O exemplo a seguir é para @JsonInclude -

import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;
import org.boon.json.annotations.JsonInclude;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.createUseAnnotations( true );     
      Student student = new Student(1,null);  
      String jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);    
   }
}
class Student {
   public int id; 
   @JsonInclude
   public String name;

   Student(int id, String name) {
      this.id = id;
      this.name = name;
   }
}

Resultado

Quando o script for executado com sucesso, você verá a seguinte saída -

{"id":1,"name":null}

@JsonViews é usado para controlar valores a serem serializados ou não.

Exemplo - @JsonView

O exemplo a seguir é para @JsonView -

import org.boon.json.JsonSerializer;
import org.boon.json.JsonSerializerFactory;
import org.boon.json.annotations.JsonViews;

public class BoonTester {
   public static void main(String args[]) {
      JsonSerializer serializerPublic = new JsonSerializerFactory()
         .useAnnotations()
         .setView( "public" )
         .create();
      
      JsonSerializer serializerInternal = new JsonSerializerFactory()
         .useAnnotations()
         .setView( "internal" )
         .create();
      
      Student student = new Student(1,"Mark", 20);
      String jsonString = serializerPublic.serialize( student ).toString();
      System.out.println(jsonString);         
      jsonString = serializerInternal.serialize( student ).toString();
      System.out.println(jsonString);
   }
}
class Student {   
   public int id;   
   public String name;
   @JsonViews( ignoreWithViews = {"public"}, includeWithViews = {"internal"})
   public int age;

   Student(int id, String name, int age) {
      this.id = id;
      this.name = name;
      this.age = age;
   }
}

Resultado

Obteremos uma saída semelhante à seguinte -

{"id":1,"name":"Mark"}
{"id":1,"name":"Mark","age":20}

@JsonProperty é usado para marcar o método getter / setter não padrão a ser usado com relação à propriedade json.

Exemplo - @JsonProperty

O exemplo a seguir é para @JsonProperty -

import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;
import org.boon.json.annotations.JsonProperty;

public class BoonTester {
   public static void main(String args[]) {
      ObjectMapper mapper = JsonFactory.create();     
      Student student = new Student(1);  
      String jsonString = mapper.writeValueAsString(student);
      System.out.println(jsonString);    
   }
}
class Student { 
   private int id;
   Student(){}
   Student(int id){
      this.id = id;
   }
   @JsonProperty("id")
   public int getTheId() {
      return id;
   }
   @JsonProperty("id")
   public void setTheId(int id) {
      this.id = id;
   }   
}

Resultado

Após a execução, você receberá a seguinte saída -

{"id":1}