こんにちは、さるまりんです。
以前、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に格納されているのがわかりますね。
受け取ったものがどんなクラスのものかわからない時に中身を確認する時には便利かもしれないです。
読んでくださってありがとうございます。
それではまた!