Boon-quick-guide

提供:Dev Guides
移動先:案内検索

ブーン-概要

*Boon* は、JSON用のシンプルなJavaベースのツールキットです。 Boon JSONを使用して、JSONデータを効率的かつ高速にエンコードまたはデコードできます。

特徴

  • 高速-Boon JSONはオブジェクトのシリアル化が高速で、Jacksonと比較してJSON式とJSON解析が可能です。
  • 軽量-クラスが非常に少なく、オブジェクトマッピングのエンコード/デコードなどの必要な機能を提供します。
  • データバインディング-ほとんどの操作は、データバインディングとインデックスオーバーレイを使用して行われます。
  • パブリックツリーモデルなし-エンドユーザービューはデータバインディングビューです。
  • シンプルなデータバインディングをサポート-プリミティブおよびオートボクシングによるデータバインディングを提供します。
  • 高性能-ヒープベースのパーサーが使用され、高性能を提供します。
  • 依存関係なし-外部ライブラリの依存関係なし。 独立して含めることができます。
  • * JDK1.2互換*-ソースコードとバイナリはJDK1.2互換です

ブーン-環境設定

ローカル環境のセットアップ

Javaプログラミング言語用に環境をセットアップする場合は、このセクションで、マシンにJavaをダウンロードしてセットアップする方法を説明します。 環境をセットアップするには、以下の手順に従ってください。

Java SEは、https://java.sun.com/javase/downloads/index_jdk5.jsp [Javaのダウンロード]リンクから無料で入手できます。 そのため、オペレーティングシステムに基づいてバージョンをダウンロードします。

指示に従ってJavaをダウンロードし、*。exe *を実行して、マシンにJavaをインストールします。 マシンにJavaをインストールしたら、正しいインストールディレクトリを指すように環境変数を設定する必要があります-

Windows 2000/XPのパスのセットアップ

_c:\ Program Files \ java \ jdk_ディレクトリにJavaがインストールされていると想定しています-

  • 「マイコンピュータ」を右クリックして、「プロパティ」を選択します。
  • 「詳細」タブの下の「環境変数」ボタンをクリックします。
  • ここで、「Path」変数を変更して、Java実行可能ファイルへのパスも含まれるようにします。 たとえば、パスが現在「C:\ WINDOWS \ SYSTEM32」に設定されている場合、パスを「C:\ WINDOWS \ SYSTEM32; c:\ Program Files \ java \ jdk \ bin」に変更します。

Windows 95/98/MEのパスのセットアップ

_c:\ Program Files \ java \ jdk_ディレクトリにJavaがインストールされていると想定しています-

  • 「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があります。 しかし、今のところ、次のいずれかを検討することができます-

ブーンアーカイブをダウンロード

Maven Repository-BoonからBoon jarファイルの最新バージョンをダウンロードします。 このチュートリアルでは、boon-0.34.jarがダウンロードされ、C:\> boonフォルダーにコピーされます。

OS Archive name
Windows boon-0.34.jar
Linux boon-0.34.jar
Mac boon-0.34.jar

ブーン環境を設定する

*BOON* 環境変数を、Boon jarがマシンに保存されているベースディレクトリの場所を指すように設定します。 次のように、さまざまなオペレーティングシステムのBoonフォルダーにboon-0.34.jarを抽出したと仮定します。
OS Output
Windows Set the environment variable BOON to C:\Boon
Linux export BOON=/usr/local/Boon
Mac export BOON=/Library/Boon

CLASSPATH変数を設定する

*CLASSPATH* 環境変数を設定して、Boon jarの場所を指すようにします。 次のように、さまざまなオペレーティングシステムのBoonフォルダーにboon-0.34.jarを保存しているとします。
OS Output
Windows Set the environment variable CLASSPATH to %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* は、Boonライブラリのメインアクタークラスです。 ObjectMapperクラスは、基本的なPOJO(プレーンオールドJavaオブジェクト)と汎用JSONツリーモデル(JsonNode)の間でJSONを読み書きする機能、および変換を実行するための関連機能を提供します。 また、さまざまなスタイルのJSONコンテンツの両方で動作し、ポリモーフィズムやオブジェクトIDなどのより高度なオブジェクトの概念をサポートするように高度にカスタマイズできます。

次の例では、ObjectMapperクラスを使用して、JSON文字列を学生オブジェクトに解析します。

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をMapオブジェクトに解析することもできます。

次の例では、ObjectMapperクラスを使用してJSON文字列を解析してマップオブジェクトにしています。

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配列*
  • ファイル
  • リーダークラス
  • 入力ストリームクラス
  • 文字列

次の例では、ObjectMapperクラスを使用してJSON文字配列を解析してマップオブジェクトにしています。

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* クラスを使用して、オブジェクトからJSON文字列を生成できます。

次の例では、ObjectMapperクラスを使用して、学生オブジェクトから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* クラスを使用して、マップからjson文字列を生成できます。

次の例では、ObjectMapperクラスを使用して、マップオブジェクトから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はDateを長いミリ秒バージョンで生成します。 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

@JsonIncludeは、null/空またはデフォルト値を持つプロパティを含めるために使用されます。 デフォルトでは、Boonはシリアル化/逆シリアル化中にそのようなプロパティを無視します。

例-@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

@JsonViewsは、値をシリアル化するかどうかを制御するために使用されます。

例-@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

@JsonPropertyは、jsonプロパティに関して使用される非標準のgetter/setterメソッドをマークするために使用されます。

例-@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}