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

JavaのFlexjsonライブラリを使ってMapをJSONにシリアライズする方法

Flexjsonは、JavaオブジェクトをJSON形式にシリアライズ(直列化)したり、JSONからJavaオブジェクトへデシリアライズ(復元)したりするための軽量ライブラリです。JSONSerializerクラスのserialize()メソッドを使用すると、Mapオブジェクトも簡単にシリアライズできます。このメソッドは、対象インスタンスに対してシャロー(浅い)シリアライズを実行します。

serialize()メソッドの構文

public String serialize(Object target)

コード例

以下の例では、HashMapに文字列とStudentオブジェクトを格納し、JSONSerializerを使ってJSON文字列へ変換しています。

import flexjson.JSONSerializer;
import java.util.*;

public class JsonSerializeMapTest {
    public static void main(String[] args) {
        JSONSerializer serializer = new JSONSerializer().prettyPrint(true);
        Student student = new Student("Adithya", "Sai", 28, "Hyderabad");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("Student1", "Raja");
        map.put("Student2", "Ravi");
        map.put("my_student", student);
        String jsonStr = serializer.serialize(map);
        System.out.println(jsonStr);
    }
}

// Studentクラス
class Student {
    private String firstName;
    private String lastName;
    private int age;
    private String address;

    public Student() {}

    public Student(String firstName, String lastName, int age, String address) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
        this.address = address;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public int getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }

    @Override
    public String toString() {
        return "Student[ " +
                "firstName = " + firstName +
                ", lastName = " + lastName +
                ", age = " + age +
                ", address = " + address + " ]";
    }
}

実行結果

{
    "my_student": {
        "address": "Hyderabad",
        "age": 28,
        "class": "Student",
        "firstName": "Adithya",
        "lastName": "Sai"
    },
    "Student1": "Raja",
    "Student2": "Ravi"
}

ポイント

  • prettyPrint(true)を設定すると、インデント付きの整形されたJSONが出力され、可読性が大きく向上します。
  • Mapの値として格納されたStudentオブジェクトも、自動的にネストされたJSONオブジェクトとして展開されます。
  • 使用しているのがHashMapであるため、キーの並び順は保証されず、実行環境によって出力順序が異なる場合があります。順序を固定したい場合はLinkedHashMapの利用を検討してください。
  1. 【Java】OpenCVライブラリを使って画像のコントラストを変更する方法

    画像の明るさやコントラストの増減は、画像のピクセル値を変換することで実現できます。この変換は、次のような数式で表されます。g(i, j) = α ・ f(i, j) + βここで、各要素の意味は以下のとおりです。(i, j):ピクセルの位置(座標)α(ゲイン)と β(バイアス):変換のパラメータ一般に、ゲインパラメータ α が画像のコントラストを制御し、バイアスパラメータ β が画像の明るさを制御します。convertTo() メソッドについてorg.opencv.core.Mat クラスの convertTo() メソッドを使うと、指定した行列に対して必要な計算を実行し、画像のコントラストや

  2. 【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法

    GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを