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の利用を検討してください。
-
【Java】OpenCVライブラリを使って画像のコントラストを変更する方法
画像の明るさやコントラストの増減は、画像のピクセル値を変換することで実現できます。この変換は、次のような数式で表されます。g(i, j) = α ・ f(i, j) + βここで、各要素の意味は以下のとおりです。(i, j):ピクセルの位置(座標)α(ゲイン)と β(バイアス):変換のパラメータ一般に、ゲインパラメータ α が画像のコントラストを制御し、バイアスパラメータ β が画像の明るさを制御します。convertTo() メソッドについてorg.opencv.core.Mat クラスの convertTo() メソッドを使うと、指定した行列に対して必要な計算を実行し、画像のコントラストや
-
【Java入門】Gsonライブラリを使ってJSON文字列をファイルに書き込む方法
GsonライブラリとはGsonは、JavaオブジェクトをJSON形式に変換(シリアライズ)するためのGoogle製オープンソースライブラリです。逆に、JSON文字列からJavaオブジェクトへの変換(デシリアライズ)も簡単に行えるため、JavaでJSONを扱う際の定番ライブラリとして広く利用されています。Gsonを使用する際の中心的なクラスはGsonクラスです。インスタンスはnew Gson()のように直接生成できますが、設定をカスタマイズしたい場合はGsonBuilderクラスを使ってGsonインスタンスを作成することも可能です。この記事では、Gsonクラスが提供するtoJson()メソッドを