Boon - Hướng dẫn nhanh

Boonlà một bộ công cụ dựa trên Java đơn giản cho JSON. Bạn có thể sử dụng Boon JSON để mã hóa hoặc giải mã dữ liệu JSON một cách hiệu quả và nhanh hơn.

Đặc điểm của Boon

Các tính năng của Boon được giải thích dưới đây:

  • Fast - Boon JSON nhanh hơn ở Object Serialization, cho phép JSON Expression và JSON Parsing so với Jackson.

  • Lightweight - Nó có rất ít lớp và cung cấp các chức năng cần thiết như mã hóa / giải mã Ánh xạ đối tượng.

  • Data Binding - Hầu hết các hoạt động được thực hiện bằng cách sử dụng liên kết dữ liệu và lớp phủ chỉ mục.

  • No public tree model - Chế độ xem người dùng cuối là chế độ xem ràng buộc dữ liệu.

  • Supports simple data binding - Cung cấp liên kết dữ liệu với các nguyên thủy cũng như với quyền tự động.

  • High performance - Trình phân tích cú pháp dựa trên đống được sử dụng và cung cấp hiệu suất cao.

  • No dependency- Không phụ thuộc thư viện bên ngoài. Có thể được bao gồm độc lập.

  • JDK1.2 compatible - Mã nguồn và mã nhị phân tương thích với JDK1.2

Trong chương này, chúng ta sẽ tìm hiểu về thiết lập môi trường cục bộ của Boon và cách thiết lập đường dẫn của Boon cho Windows 2000 / XP, Windows 95/98 / ME, v.v. Chúng ta cũng sẽ hiểu về một số trình soạn thảo java phổ biến và cách tải xuống Kho lưu trữ Boon.

Thiết lập môi trường cục bộ

Nếu bạn vẫn sẵn sàng thiết lập môi trường của mình cho ngôn ngữ lập trình Java, thì chương này sẽ hướng dẫn bạn cách tải xuống và thiết lập Java trên máy của bạn. Vui lòng làm theo các bước được đề cập bên dưới để thiết lập môi trường.

Java SE có sẵn miễn phí từ liên kết www.oracle.com/java/technologies/oracle-java-archive-downloads.html . Vì vậy, bạn tải xuống một phiên bản dựa trên hệ điều hành của bạn.

Làm theo hướng dẫn để tải xuống Java và chạy .exeđể cài đặt Java trên máy của bạn. Khi bạn đã cài đặt Java trên máy của mình, bạn sẽ cần đặt các biến môi trường để trỏ đến các thư mục cài đặt chính xác -

Đường dẫn cho Windows 2000 / XP

Chúng tôi giả định rằng bạn đã cài đặt Java trong c:\Program Files\java\jdk thư mục -

  • Nhấp chuột phải vào 'My Computer' và chọn 'Properties'.

  • Bấm vào 'Environment variables' nút dưới 'Advanced' chuyển hướng.

  • Bây giờ, hãy thay đổi biến 'Đường dẫn' để nó cũng chứa đường dẫn đến tệp thực thi Java. Ví dụ, nếu đường dẫn hiện được đặt thành'C:\WINDOWS\SYSTEM32', sau đó thay đổi đường dẫn của bạn để đọc 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Đường dẫn cho Windows 95/98 / ME

Chúng tôi giả định rằng bạn đã cài đặt Java trong c:\Program Files\java\jdk thư mục -

  • Chỉnh sửa tệp 'C: \ autoexec.bat' và thêm dòng sau vào cuối - 'SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'

Đường dẫn cho Linux, UNIX, Solaris, FreeBSD

Biến môi trường PATH phải được đặt để trỏ đến nơi các tệp nhị phân Java đã được cài đặt. Tham khảo tài liệu shell của bạn nếu bạn gặp khó khăn khi thực hiện việc này.

Ví dụ: nếu bạn sử dụng bash làm trình bao, thì bạn sẽ thêm dòng sau vào cuối '.bashrc: export PATH = / path / to / java: $ PATH'

Trình chỉnh sửa Java phổ biến

Để viết các chương trình Java, bạn cần một trình soạn thảo văn bản. Có rất nhiều IDE tinh vi có sẵn trên thị trường. Nhưng hiện tại, bạn có thể xem xét một trong những điều sau:

  • Notepad - Trên máy Windows, bạn có thể sử dụng bất kỳ trình soạn thảo văn bản đơn giản nào như Notepad (Khuyến nghị cho hướng dẫn này), TextPad.

  • Netbeans- Đây là một IDE Java mã nguồn mở và miễn phí, có thể tải xuống từ www.netbeans.org/index.html .

  • Eclipse- Nó cũng là một IDE Java được phát triển bởi cộng đồng nguồn mở eclipse và có thể tải xuống từ www.eclipse.org .

Tải xuống Boon Archive

Tải xuống phiên bản mới nhất của tệp Boon jar từ Maven Repository - Boon. có sẵn tạihttps://mvnrepository.com/artifact/io.fastjson/boon. Trong hướng dẫn này, boon-0.34.jar được tải xuống và sao chép vào thư mục C: \> boon.

Hệ điều hành Tên lưu trữ
các cửa sổ boon-0,34.jar
Linux boon-0,34.jar
Mac boon-0,34.jar

Đặt Môi trường Boon

Đặt BOONbiến môi trường để trỏ đến vị trí thư mục cơ sở nơi lưu trữ Boon jar trên máy của bạn. Giả sử, chúng tôi đã trích xuấtboon-0.34.jar trong thư mục Boon trên các Hệ điều hành khác nhau như sau.

Hệ điều hành Đầu ra
các cửa sổ Đặt biến môi trường BOON thành C: \ Boon
Linux xuất BOON = / usr / local / Boon
Mac xuất BOON = / Library / Boon

Đặt biến CLASSPATH

Đặt CLASSPATHbiến môi trường để trỏ đến vị trí lọ Boon. Giả sử, bạn đã lưu trữ boon-0.34.jar trong thư mục Boon trên các Hệ điều hành khác nhau như sau.

Hệ điều hành Đầu ra
các cửa sổ Đặt biến môi trường CLASSPATH thành% CLASSPATH%;% Boon% \ boon-0.34.jar;.;
Linux xuất CLASSPATH = $ CLASSPATH: $ BOON / boon-0,34.jar:.
Mac xuất CLASSPATH = $ CLASSPATH: $ BOON / boon-0,34.jar:.

ObjectMapperlà lớp diễn viên chính của thư viện Boon. Lớp ObjectMapper cung cấp chức năng đọc và ghi JSON, đến và từ các POJO cơ bản (Đối tượng Java cũ thuần túy) hoặc đến và từ Mô hình cây JSON có mục đích chung (JsonNode), cũng như chức năng liên quan để thực hiện chuyển đổi.

Nó cũng có thể tùy chỉnh cao để làm việc với các kiểu nội dung JSON khác nhau và hỗ trợ các khái niệm Đối tượng nâng cao hơn như tính đa hình và nhận dạng Đối tượng.

Thí dụ

Ví dụ sau đây là sử dụng lớp ObjectMapper để phân tích cú pháp một chuỗi JSON thành một Đối tượng Sinh viên.

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

Đầu ra

Đầu ra được đề cập bên dưới -

Student [ name: Mahesh, age: 21 ]

ObjectMapper lớp cũng có thể được sử dụng để phân tích cú pháp json thành đối tượng Ánh xạ thay vì đối tượng POJO.

Thí dụ

Ví dụ sau là sử dụng lớp ObjectMapper để phân tích cú pháp một chuỗi JSON thành một Đối tượng bản đồ.

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

Đầu ra

Đầu ra được đưa ra dưới đây -

Name: Mahesh
Age: 21

ObjectMapperlớp có thể được sử dụng để phân tích cú pháp json từ các nguồn khác nhau. Nó có thể sử dụng các nguồn sau để phân tích cú pháp JSON.

  • mảng byte

  • mảng char

  • File

  • Lớp đọc

  • Các lớp luồng đầu vào

  • String

Thí dụ

Ví dụ sau là sử dụng lớp ObjectMapper để phân tích cú pháp một mảng ký tự JSON thành một Đối tượng Bản đồ.

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

Đầu ra

Bạn sẽ thấy kết quả sau:

Name: Mahesh
Age: 21

ObjectMapper lớp có thể được sử dụng để tạo một chuỗi json từ một Đối tượng.

Thí dụ

Ví dụ sau là sử dụng lớp ObjectMapper để tạo một chuỗi JSON từ một Đối tượng Sinh viên.

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

Đầu ra

Điều này tạo ra kết quả sau:

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

ObjectMapper lớp có thể được sử dụng để tạo một chuỗi json từ một Bản đồ.

Thí dụ

Ví dụ sau là sử dụng lớp ObjectMapper để tạo một chuỗi JSON từ một Đối tượng bản đồ.

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

Đầu ra

Khi bạn thực thi đoạn mã trên, bạn sẽ thấy kết quả sau:

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

ObjectMapperlớp có thể được sử dụng để làm việc với các định dạng ngày tháng khác nhau trong JSON. Nó có thể được sử dụng để phân tích cú pháp / tạo phiên bản dài của ngày tháng.

Thí dụ

Ví dụ sau sử dụng lớp ObjectMapper để tạo chuỗi Ngày từ một phiên bản dài.

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

Đầu ra

Dưới đây là đầu ra của mã:

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

ObjectMapperlớp có thể được sử dụng để làm việc với các định dạng ngày tháng khác nhau trong JSON. Nó có thể được sử dụng để phân tích cú pháp / tạo phiên bản Chuỗi ngày.

Thí dụ

Ví dụ sau sử dụng lớp ObjectMapper để tạo chuỗi Ngày từ phiên bản Chuỗi.

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

Đầu ra

Khi bạn thực thi đoạn mã trên, bạn sẽ thấy kết quả sau:

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

ObjectMapperlớp có thể được sử dụng để làm việc với các định dạng ngày tháng khác nhau trong JSON. Nó cũng có thể được sử dụng để tạo đối tượng ngày tháng. Theo mặc định, ObjectMapper tạo Ngày trong phiên bản dài mili giây. Sử dụng ObjectMapper được trả về bởi phương thức JsonFactory.createUseJSONDates (), chúng ta có thể nhận được phiên bản chuỗi ngày trong quá trình phân tích cú pháp.

Thí dụ

Ví dụ sau sử dụng lớp ObjectMapper để tạo chuỗi Ngày bằng cách phân tích cú pháp 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;
   }
}

Đầu ra

Bạn sẽ nhận được kết quả sau:

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

@JsonIgnore được sử dụng ở cấp trường để đánh dấu một thuộc tính hoặc danh sách các thuộc tính bị bỏ qua.

Ví dụ - @JsonIgnore

Ví dụ sau dành cho @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;
   }
}

Đầu ra

Bạn sẽ thấy kết quả sau:

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

@JsonInclude được sử dụng để bao gồm các thuộc tính có giá trị null / trống hoặc giá trị mặc định. Theo mặc định Boon bỏ qua các thuộc tính như vậy trong quá trình tuần tự hóa / hủy tuần tự hóa.

Ví dụ - @JsonInclude

Ví dụ sau dành cho @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;
   }
}

Đầu ra

Khi tập lệnh chạy thành công, bạn sẽ thấy kết quả sau:

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

@JsonViews được sử dụng để kiểm soát các giá trị có được tuần tự hóa hay không.

Ví dụ - @JsonView

Ví dụ sau dành cho @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;
   }
}

Đầu ra

Chúng ta sẽ nhận được kết quả tương tự như sau:

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

@JsonProperty được sử dụng để đánh dấu phương thức getter / setter không chuẩn sẽ được sử dụng đối với thuộc tính json.

Ví dụ - @JsonProperty

Ví dụ sau dành cho @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;
   }   
}

Đầu ra

Khi thực hiện, bạn sẽ nhận được kết quả sau:

{"id":1}