Boon - Guida rapida

Boonè un semplice toolkit basato su Java per JSON. Puoi utilizzare Boon JSON per codificare o decodificare i dati JSON in modo efficiente e veloce.

Caratteristiche di Boon

Le caratteristiche di Boon sono spiegate di seguito:

  • Fast - Boon JSON è più veloce nella serializzazione degli oggetti, abilitando l'espressione JSON e l'analisi JSON rispetto a Jackson.

  • Lightweight - Ha pochissime classi e fornisce le funzionalità necessarie come codificare / decodificare la mappatura degli oggetti.

  • Data Binding - La maggior parte delle operazioni viene eseguita utilizzando l'associazione dati e la sovrapposizione dell'indice.

  • No public tree model - La vista dell'utente finale è la vista del data binding.

  • Supports simple data binding - Fornisce il data binding con primitive e con l'auto boxing.

  • High performance - Viene utilizzato un parser basato su heap e fornisce prestazioni elevate.

  • No dependency- Nessuna dipendenza da libreria esterna. Può essere incluso indipendentemente.

  • JDK1.2 compatible - Il codice sorgente e il binario sono compatibili con JDK1.2

In questo capitolo impareremo la configurazione dell'ambiente locale di Boon e come impostare il percorso di Boon per Windows 2000 / XP, Windows 95/98 / ME ecc. Capiremo anche alcuni popolari editor java e come scaricarli Archivio Boon.

Configurazione dell'ambiente locale

Se sei ancora disposto a configurare il tuo ambiente per il linguaggio di programmazione Java, questo capitolo ti guiderà su come scaricare e configurare Java sulla tua macchina. Seguire i passaggi indicati di seguito per configurare l'ambiente.

Java SE è disponibile gratuitamente dal collegamento www.oracle.com/java/technologies/oracle-java-archive-downloads.html . Quindi scarichi una versione basata sul tuo sistema operativo.

Segui le istruzioni per scaricare Java ed eseguire il file .exeper installare Java sulla tua macchina. Dopo aver installato Java sulla macchina, è necessario impostare le variabili di ambiente in modo che puntino alle directory di installazione corrette -

Percorso per Windows 2000 / XP

Supponiamo che tu abbia installato Java in c:\Program Files\java\jdk directory -

  • Fare clic con il tasto destro su 'My Computer' e seleziona 'Properties'.

  • Clicca sul 'Environment variables' pulsante sotto il 'Advanced' tab.

  • Ora, modifica la variabile "Path" in modo che contenga anche il percorso dell'eseguibile Java. Esempio, se il percorso è attualmente impostato su'C:\WINDOWS\SYSTEM32', quindi modifica il percorso in lettura 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Percorso per Windows 95/98 / ME

Supponiamo che tu abbia installato Java in c:\Program Files\java\jdk directory -

  • Modifica il file "C: \ autoexec.bat" e aggiungi la seguente riga alla fine: "SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin"

Percorso per Linux, UNIX, Solaris, FreeBSD

La variabile d'ambiente PATH dovrebbe essere impostata in modo che punti a dove sono stati installati i binari Java. Fare riferimento alla documentazione della shell se si hanno problemi a farlo.

Esempio, se usi bash come shell, aggiungi la seguente riga alla fine di '.bashrc: export PATH = / path / to / java: $ PATH'

Editor Java popolari

Per scrivere i tuoi programmi Java, hai bisogno di un editor di testo. Ci sono molti IDE sofisticati disponibili sul mercato. Ma per ora, puoi considerare uno dei seguenti:

  • Notepad - Su una macchina Windows puoi utilizzare qualsiasi semplice editor di testo come Blocco note (consigliato per questo tutorial), TextPad.

  • Netbeans- È un IDE Java open-source e gratuito che può essere scaricato da www.netbeans.org/index.html .

  • Eclipse- È anche un IDE Java sviluppato dalla comunità open source di eclipse e può essere scaricato da www.eclipse.org .

Scarica Boon Archive

Scarica l'ultima versione del file jar di Boon da Maven Repository - Boon. disponibile all'indirizzohttps://mvnrepository.com/artifact/io.fastjson/boon. In questo tutorial, boon-0.34.jar viene scaricato e copiato nella cartella C: \> boon.

OS Nome dell'archivio
finestre boon-0.34.jar
Linux boon-0.34.jar
Mac boon-0.34.jar

Imposta l'ambiente Boon

Impostare il BOONvariabile di ambiente in modo che punti alla posizione della directory di base in cui è archiviato il vaso Boon sulla macchina. Supponendo, abbiamo estrattoboon-0.34.jar nella cartella Boon su vari sistemi operativi come segue.

OS Produzione
finestre Imposta la variabile d'ambiente BOON su C: \ Boon
Linux export BOON = / usr / local / Boon
Mac export BOON = / Library / Boon

Imposta la variabile CLASSPATH

Impostare il CLASSPATHvariabile d'ambiente in modo che punti alla posizione del vaso Boon. Supponendo che tu abbia memorizzato boon-0.34.jar nella cartella Boon su vari sistemi operativi come segue.

OS Produzione
finestre Imposta la variabile d'ambiente CLASSPATH su% 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è la classe principale dell'attore della libreria Boon. La classe ObjectMapper fornisce funzionalità per la lettura e la scrittura di JSON, da e verso POJO di base (Plain Old Java Objects) o da e verso un JSON Tree Model (JsonNode) per scopi generici, nonché funzionalità correlate per l'esecuzione di conversioni.

È inoltre altamente personalizzabile per funzionare sia con diversi stili di contenuto JSON, sia per supportare concetti di oggetti più avanzati come il polimorfismo e l'identità degli oggetti.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per analizzare una stringa JSON in un oggetto Student.

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+ " ]";
   }
}

Produzione

L'output è menzionato di seguito:

Student [ name: Mahesh, age: 21 ]

ObjectMapper class può anche essere utilizzata per analizzare un json in un oggetto Map invece di un oggetto POJO.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per analizzare una stringa JSON in un oggetto mappa.

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"));
   }
}

Produzione

L'output è fornito di seguito:

Name: Mahesh
Age: 21

ObjectMapperclass può essere utilizzato per analizzare un json da diverse fonti. Può utilizzare le seguenti fonti per analizzare JSON.

  • byte Array

  • char Array

  • File

  • Classi di lettori

  • Classi di flusso di input

  • String

Esempio

L'esempio seguente utilizza la classe ObjectMapper per analizzare un array di caratteri JSON in un oggetto mappa.

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"));
   }
}

Produzione

Vedrai il seguente output:

Name: Mahesh
Age: 21

ObjectMapper class può essere utilizzata per generare una stringa json da un oggetto.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per generare una stringa JSON da un oggetto 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;
   }
}

Produzione

Questo produce il seguente output:

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

ObjectMapper class può essere utilizzata per generare una stringa json da una mappa.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per generare una stringa JSON da un oggetto mappa.

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);
   }
}

Produzione

Quando esegui il codice sopra, dovresti vedere il seguente output:

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

ObjectMapperclass può essere utilizzato per lavorare con diversi formati di data in JSON. Può essere utilizzato per analizzare / generare una versione lunga della data.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per generare una stringa Date da una versione lunga.

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;
   }
}

Produzione

Di seguito è riportato l'output del codice:

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

ObjectMapperclass può essere utilizzato per lavorare con diversi formati di data in JSON. Può essere utilizzato per analizzare / generare la versione String della data.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per generare una stringa Date da una versione String.

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;
   }
}

Produzione

Quando esegui il codice sopra, dovresti vedere il seguente output:

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

ObjectMapperclass può essere utilizzato per lavorare con diversi formati di data in JSON. Può essere utilizzato anche per generare l'oggetto data. Per impostazione predefinita, ObjectMapper genera la data nella versione in millisecondi lunghi. Utilizzando ObjectMapper restituito dal metodo JsonFactory.createUseJSONDates (), è possibile ottenere una versione stringa della data durante l'analisi.

Esempio

L'esempio seguente utilizza la classe ObjectMapper per generare una stringa Date analizzando 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;
   }
}

Produzione

Riceverai il seguente output:

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

@JsonIgnore viene utilizzato a livello di campo per contrassegnare una proprietà o un elenco di proprietà da ignorare.

Esempio: @JsonIgnore

Il seguente esempio è per @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;
   }
}

Produzione

Vedrai il seguente output:

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

@JsonInclude viene utilizzato per includere proprietà con valori null / vuoti o predefiniti. Per impostazione predefinita, Boon ignora tali proprietà durante la serializzazione / de-serializzazione.

Esempio: @JsonInclude

L'esempio seguente è per @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;
   }
}

Produzione

Quando lo script viene eseguito correttamente, vedrai il seguente output:

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

@JsonViews viene utilizzato per controllare i valori da serializzare o meno.

Esempio: @JsonView

L'esempio seguente è per @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;
   }
}

Produzione

Otterremo l'output simile come segue:

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

@JsonProperty viene utilizzato per contrassegnare un metodo getter / setter non standard da utilizzare rispetto alla proprietà json.

Esempio: @JsonProperty

L'esempio seguente è per @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;
   }   
}

Produzione

Dopo l'esecuzione, riceverai il seguente output:

{"id":1}