Java
 Computer >> コンピューター >  >> プログラミング >> Java

Jacksonライブラリを使ってJavaオブジェクトをJSONに変換する方法


JSON(JavaScript Object Notation)は、人間が読みやすい形式でデータを交換することを目的とした、軽量なテキストベースのオープン標準フォーマットです。JSONの記法は、C、C++、Java、Python、Perlなど、さまざまなプログラミング言語に精通した開発者にとって馴染み深いものになっています。

JavaでJSONを扱うためのライブラリは複数存在しますが、その中でもJacksonは、JavaオブジェクトをJSONへシリアライズしたり、その逆の変換を行ったりできるシンプルで人気の高いJavaベースのライブラリです。

JavaオブジェクトをJSONに変換する基本

Jackson APIが提供するObjectMapperクラスには、JavaオブジェクトをJSONに変換するメソッド、およびその逆の変換を行うメソッドが用意されています。

中でもwriteValueAsString()メソッドは、Javaオブジェクトを引数として受け取り、それに対応するJSON文字列を返します。

変換の手順

Jacksonライブラリを使ってJavaオブジェクトをJSON文字列に変換するには、以下の手順を実行します。

  • pom.xmlに以下のMaven依存関係を追加します。

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.0.pr2</version>
</dependency>
  • プライベート変数とセッター/ゲッターメソッドを持つJavaBean(POJO)クラスを作成します。

  • もう一つ別のクラスを作成します(このクラスからPOJOクラスが参照できるようにしてください)。

  • そのクラス内でPOJOクラスのオブジェクトを生成し、セッターメソッドを使って必要な値を設定します。

  • ObjectMapperクラスをインスタンス化します。

  • 作成したPOJOオブジェクトを引数としてwriteValueAsString()メソッドを呼び出します。

  • 取得したJSONを受け取り、出力します。

サンプルコード

import com.fasterxml.jackson.databind.ObjectMapper;

class Student {
    private int id;
    private String name;
    private int age;
    private long phone;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    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 long getPhone() {
        return phone;
    }
    public void setPhone(long phone) {
        this.phone = phone;
    }
}

public class JacksonExample {
    public static void main(String args[]) throws Exception {
        Student std = new Student();
        std.setId(1);
        std.setName("Krishna");
        std.setAge(30);
        std.setPhone(9848022338L);

        // ObjectMapperオブジェクトの生成
        ObjectMapper mapper = new ObjectMapper();

        // オブジェクトをJSON文字列に変換
        String jsonString = mapper.writeValueAsString(std);

        System.out.println(jsonString);
    }
}

実行結果

{"id":1,"name":"Krishna","age":30,"phone":9848022338}

このように、ObjectMapperクラスのwriteValueAsString()メソッドを使うだけで、Javaオブジェクトを簡単にJSON文字列へ変換できます。逆に、JSONからJavaオブジェクトへの変換(デシリアライズ)にはreadValue()メソッドを使用します。


  1. JavaでJSON文字列をJSONオブジェクトに変換する方法を徹底解説

    JSONとはJSON(JavaScript Object Notation)は、データの転送や保存に広く利用されている軽量なデータ交換フォーマットです。人間にとって読み書きしやすく、機械にとっても解析が容易なため、Web APIや設定ファイルなど、さまざまな場面で採用されています。JSONObjectとJSONArrayの役割JSONObjectクラスは、文字列からテキストを解析して、Mapのようなオブジェクトを生成します。このオブジェクトには、内容を操作するためのメソッドや、JSON仕様に準拠したオブジェクトのシリアライズを生成するメソッドが用意されています。一方、JSONArrayクラスは

  2. JavaオブジェクトをJSONに変換する方法(Jackson・Gsonの使い方)

    このチュートリアルでは、JavaオブジェクトをJSON形式に変換する方法を、定番ライブラリであるJacksonとGsonの2つを使って解説します。 サンプルとして使用するのは、ごく標準的なPOJO(Plain Old Java Object)であるPersonクラスです。Personオブジェクトを作成したら、それぞれのライブラリを使ってJSONへ変換してみましょう。 Person.java import java.util.List; import java.util.Map; public class Person { String name; Integer age;