Boon-퀵 가이드

BoonJSON을위한 간단한 Java 기반 툴킷입니다. Boon JSON을 사용하여 효율적이고 빠른 방법으로 JSON 데이터를 인코딩하거나 디코딩 할 수 있습니다.

Boon의 특징

Boon의 기능은 다음과 같습니다.

  • Fast − Boon JSON은 객체 직렬화에서 더 빠르며 Jackson에 비해 JSON 표현식 및 JSON 구문 분석이 가능합니다.

  • Lightweight − 클래스가 거의 없으며 객체 매핑 인코딩 / 디코딩과 같은 필요한 기능을 제공합니다.

  • Data Binding − 대부분의 작업은 데이터 바인딩 및 인덱스 오버레이를 사용하여 수행됩니다.

  • No public tree model − 최종 사용자보기는 데이터 바인딩보기입니다.

  • Supports simple data binding − 자동 복싱뿐만 아니라 프리미티브와 데이터 바인딩을 제공합니다.

  • High performance − 힙 기반 파서를 사용하여 고성능을 제공합니다.

  • No dependency− 외부 라이브러리 종속성이 없습니다. 독립적으로 포함될 수 있습니다.

  • JDK1.2 compatible − 소스 코드와 바이너리는 JDK1.2와 호환됩니다.

이 장에서는 Boon의 로컬 환경 설정과 Windows 2000 / XP, Windows 95 / 98 / ME 등에서 Boon의 경로를 설정하는 방법에 대해 알아 봅니다. 또한 몇 가지 인기있는 Java 편집기와 다운로드 방법에 대해서도 알아 봅니다. Boon 아카이브.

지역 환경 설정

여전히 Java 프로그래밍 언어에 대한 환경을 설정하려는 경우이 장에서는 시스템에서 Java를 다운로드하고 설정하는 방법을 안내합니다. 환경을 설정하려면 아래 단계를 따르십시오.

Java SE는 www.oracle.com/java/technologies/oracle-java-archive-downloads.html 링크에서 무료로 사용할 수 있습니다 . 따라서 운영 체제에 따라 버전을 다운로드합니다.

지침에 따라 Java를 다운로드하고 .exe컴퓨터에 Java를 설치합니다. 시스템에 Java를 설치 한 후에는 올바른 설치 디렉토리를 가리 키도록 환경 변수를 설정해야합니다.

Windows 2000 / XP의 경로

Java를 설치했다고 가정합니다. c:\Program Files\java\jdk 디렉토리-

  • 오른쪽 클릭 'My Computer' 그리고 선택 'Properties'.

  • 클릭 'Environment variables' 아래의 버튼 'Advanced' 탭.

  • 이제 Java 실행 파일의 경로도 포함하도록 'Path'변수를 변경하십시오. 예, 경로가 현재 다음으로 설정된 경우'C:\WINDOWS\SYSTEM32', 읽을 경로를 변경하십시오. 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Windows 95 / 98 / ME의 경로

Java를 설치했다고 가정합니다. c:\Program Files\java\jdk 디렉토리-

  • 'C : \ autoexec.bat'파일을 편집하고 끝에 'SET PATH = % PATH %; C : \ Program Files \ java \ jdk \ bin'줄을 추가합니다.

Linux, UNIX, Solaris, FreeBSD의 경로

환경 변수 PATH는 Java 바이너리가 설치된 위치를 가리 키도록 설정되어야합니다. 이 작업을 수행하는 데 문제가있는 경우 쉘 문서를 참조하십시오.

예를 들어 bash를 셸로 사용하는 경우 '.bashrc : export PATH = / path / to / java : $ PATH'끝에 다음 줄을 추가합니다.

인기있는 Java 편집자

Java 프로그램을 작성하려면 텍스트 편집기가 필요합니다. 시중에는 정교한 IDE가 많이 있습니다. 그러나 지금은 다음 중 하나를 고려할 수 있습니다.

  • Notepad − Windows 컴퓨터에서는 메모장 (이 자습서에 권장 됨), TextPad와 같은 간단한 텍스트 편집기를 사용할 수 있습니다.

  • Netbeans− www.netbeans.org/index.html 에서 다운로드 할 수있는 오픈 소스이며 무료 인 Java IDE입니다 .

  • Eclipse− 또한 Eclipse 오픈 소스 커뮤니티에서 개발 한 Java IDE이며 www.eclipse.org 에서 다운로드 할 수 있습니다 .

Boon Archive 다운로드

최신 버전의 Boon jar 파일을 다음에서 다운로드하십시오. Maven Repository - Boon. 사용할 수있는https://mvnrepository.com/artifact/io.fastjson/boon. 이 튜토리얼에서는 boon-0.34.jar을 다운로드하여 C : \> boon 폴더에 복사합니다.

OS 아카이브 이름
윈도우 boon-0.34.jar
리눅스 boon-0.34.jar
boon-0.34.jar

혜택 환경 설정

설정 BOONBoon jar가 시스템에 저장된 기본 디렉토리 위치를 가리키는 환경 변수. 우리가 추출했다고 가정하면boon-0.34.jar 다음과 같이 다양한 운영 체제의 Boon 폴더에 있습니다.

OS 산출
윈도우 환경 변수 BOON을 C : \ Boon으로 설정합니다.
리눅스 BOON = / usr / local / Boon 내보내기
export BOON = / Library / Boon

CLASSPATH 변수 설정

설정 CLASSPATHBoon jar 위치를 가리키는 환경 변수. 다음과 같이 다양한 운영 체제의 Boon 폴더에 boon-0.34.jar를 저장했다고 가정합니다.

OS 산출
윈도우 환경 변수 CLASSPATH를 % CLASSPATH %; % Boon % \ boon-0.34.jar;.;로 설정합니다.
리눅스 export CLASSPATH = $ CLASSPATH : $ BOON / boon-0.34.jar :.
export CLASSPATH = $ CLASSPATH : $ BOON / boon-0.34.jar :.

ObjectMapperBoon 라이브러리의 주요 배우 클래스입니다. ObjectMapper 클래스는 기본 POJO (Plain Old Java Objects) 또는 범용 JSON 트리 모델 (JsonNode)간에 JSON을 읽고 쓰기위한 기능과 변환을 수행하기위한 관련 기능을 제공합니다.

또한 다양한 스타일의 JSON 콘텐츠로 작업하고 다형성 및 개체 ID와 같은 고급 개체 개념을 지원하도록 고도로 사용자 지정할 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 JSON 문자열을 Student Object로 구문 분석하는 것입니다.

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

산출

출력은 아래에 언급되어 있습니다.

Student [ name: Mahesh, age: 21 ]

ObjectMapper 클래스는 또한 POJO 객체 대신 json to Map 객체를 구문 분석하는 데 사용할 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 JSON 문자열을 Map Object로 구문 분석합니다.

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

산출

출력은 다음과 같습니다.

Name: Mahesh
Age: 21

ObjectMapper클래스는 다양한 소스에서 json을 구문 분석하는 데 사용할 수 있습니다. 다음 소스를 사용하여 JSON을 구문 분석 할 수 있습니다.

  • 바이트 배열

  • char 배열

  • File

  • 리더 클래스

  • 입력 스트림 클래스

  • String

다음 예제는 ObjectMapper 클래스를 사용하여 JSON 문자 배열을 Map Object로 구문 분석합니다.

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

산출

다음 출력이 표시됩니다.

Name: Mahesh
Age: 21

ObjectMapper 클래스는 Object에서 json 문자열을 생성하는 데 사용할 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 Student Object에서 JSON 문자열을 생성하는 것입니다.

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

산출

이것은 다음과 같은 출력을 생성합니다-

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

ObjectMapper 클래스는 Map에서 json 문자열을 생성하는 데 사용할 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 Map Object에서 JSON 문자열을 생성하는 것입니다.

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

산출

위의 코드를 실행하면 다음 출력이 표시됩니다.

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

ObjectMapper클래스는 JSON에서 다른 날짜 형식으로 작업하는 데 사용할 수 있습니다. 긴 버전의 날짜를 구문 분석 / 생성하는 데 사용할 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 긴 버전에서 날짜 문자열을 생성하는 것입니다.

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

산출

다음은 코드의 출력입니다.

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

ObjectMapper클래스는 JSON에서 다른 날짜 형식으로 작업하는 데 사용할 수 있습니다. 날짜의 문자열 버전을 구문 분석 / 생성하는 데 사용할 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 문자열 버전에서 날짜 문자열을 생성하는 것입니다.

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

산출

위의 코드를 실행하면 다음 출력이 표시됩니다.

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

ObjectMapper클래스는 JSON에서 다른 날짜 형식으로 작업하는 데 사용할 수 있습니다. 날짜 개체를 생성하는데도 사용할 수 있습니다. 기본적으로 ObjectMapper는 긴 밀리 초 버전으로 날짜를 생성합니다. JsonFactory.createUseJSONDates () 메서드에서 반환 된 ObjectMapper를 사용하여 구문 분석 중에 날짜의 문자열 버전을 가져올 수 있습니다.

다음 예제는 ObjectMapper 클래스를 사용하여 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;
   }
}

산출

다음과 같은 출력을 받게됩니다.

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

@JsonIgnore는 무시할 속성 또는 속성 목록을 표시하기 위해 필드 수준에서 사용됩니다.

예-@JsonIgnore

다음 예제는 @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;
   }
}

산출

다음 출력이 표시됩니다.

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

@JsonInclude는 null / 비어있는 속성 또는 기본값을 포함하는 데 사용됩니다. 기본적으로 Boon은 직렬화 / 비 직렬화 중에 이러한 속성을 무시합니다.

예-@JsonInclude

다음 예제는 @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;
   }
}

산출

스크립트가 성공적으로 실행되면 다음 출력이 표시됩니다.

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

@JsonViews는 직렬화할지 여부를 제어하는 ​​데 사용됩니다.

예-@JsonView

다음 예제는 @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;
   }
}

산출

다음과 유사한 출력을 얻을 수 있습니다.

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

@JsonProperty는 json 속성과 관련하여 사용할 비표준 getter / setter 메서드를 표시하는 데 사용됩니다.

예-@JsonProperty

다음 예제는 @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;
   }   
}

산출

실행하면 다음과 같은 출력이 표시됩니다.

{"id":1}