元Webデザイナー兼コーダーの備忘録

ウェブデザインやプログラミング、ブログのカスタマイズなどについてアウトプットしています。

 メニュー

» HTML入門のまとめはこちらです。

Java:外部ライブラリの使い方:Jackson

JavaのJacksonという外部ライブラリを使います。Jacksonは、JSONJavaオブジェクトの相互変換ができるライブラリです。

Jacksonを入手する

以下のサイトにアクセスして、Jacksonのjarファイルを入手します。

入手するファイルは3つです。

  • Jackson Databind
  • Jackson Core
  • Jackson Annotations

ちなみにJackson Databindのダウンロードページは以下のとおりです。

このページのFilesにあるjarをクリックしてjarファイルを入手します。各ページに移動して、最新バージョンのjarファイルを入手します。私が入手したときのバージョンは、2.17.1でした。

ライブラリを配置する

入手したjarファイルを任意のフォルダに配置します。今回は、自分が作業しているフォルダに配置して使います。フォルダの中には、Jacksonライブラリ(jarファイル)と自分が作るJavaファイルが存在ます。

フォルダ構成

仮にtestフォルダを作ったとします。JavaファイルからJacksonライブラリをインポートして使います。

  • test
    • jackson-annotations-2.17.1.jar
    • jackson-core-2.17.1.jar
    • jackson-databind-2.17.1.jar
    • Test.java

サンプルプログラム

JSON→オブジェクト

// JSON文字列 ⇒ Javaオブジェクト
import java.io.*;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonToObject {
  public static void main(String[] args) throws IOException {
    String json = "{\"name\":\"Hoge\", \"email\":\"hoge@gmail.com\"}";

    ObjectMapper mapper = new ObjectMapper();
    Info info  = mapper.readValue(json, Info.class);

    System.out.println(Info.class);  // class Info
    System.out.println(info.name);
    System.out.println(info.email);
  }
}
public class Info {
  public String name;
  public String email;
}

コンパイルと実行

// コンパイル
javac -cp jackson-core-2.17.1.jar:jackson-databind-2.17.1.jar:jackson-annotations-2.17.1.jar *.java
// 実行
java -cp jackson-core-2.17.1.jar:jackson-databind-2.17.1.jar:jackson-annotations-2.17.1.jar: JsonToObject
// 出力
class Info
Hoge
hoge@gmail.com

オブジェクト→JSON

// Javaオブジェクト ⇒ JSON文字列
import java.io.*;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ObjectToJson{
  public static void main(String[] args) throws IOException {
    Info info = new Info();
    info.name = "Hoge";
    info.email = "hoge@gmail.com";

    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(info);

    System.out.println(json);
  }
}
public class Info {
  public String name;
  public String email;
}

コンパイルと実行

// コンパイル
javac -cp jackson-core-2.17.1.jar:jackson-databind-2.17.1.jar:jackson-annotations-2.17.1.jar *.java
// 実行
java -cp jackson-core-2.17.1.jar:jackson-databind-2.17.1.jar:jackson-annotations-2.17.1.jar: ObjectToJson
// 出力
{"name":"Hoge","email":"hoge@gmail.com"}

参考サイト

» HTML入門のまとめはこちらです。