こんにちは、さるまりんです。
以前、JSON文字列からMapに変換する方法について書かせてもらいました。
今回は何かしらのクラスのオブジェクトをMap
に変換する方法です。
これにはObjectMapper
のconvertValue()
メソッドを用いて行います。
以下のコードは引数として渡されたオブジェクトをキーがString
のMap
に変換します。
Map<String, Object> map = new ObjectMapper().convertValue([変換したいオブジェクト], Map.class);
例です。
次のようなクラスがあります。
A.java
public class A {
int integer;
String string;
B b;
}
B.java
public class B {
int integer;
String string;
}
(それぞれsetter
/getter
は省略しています。)
このクラスA
のオブジェクトa
を作成し、Map
に変換、それを文字列として出力するコードです。
A a = new A();
a.setInteger(10);
a.setString("hello");
B b = new B();
b.setInteger(225);
b.setString("bye!");
a.setB(b);
Map<String, Object> map = new ObjectMapper().convertValue(a, Map.class);
System.out.println("a=" + map.toString());
実行されると次のように出力されます。
a={integer=10, string=hello, b={integer=225, string=bye!}}
それぞれの要素がmap
に格納されているのがわかりますね。
受け取ったものがどんなクラスのものかわからない時に中身を確認する時には便利かもしれないです。
読んでくださってありがとうございます。
それではまた!