Map<String, Object>
からpojo/beanにマップできるマッピングライブラリ(Dozerなど)はありますか?Map <String、Object>からpojo/beanにマッピングできるJavaマッピングライブラリは何ですか?
私の具体的な使用例は、ScriptObjectMirror
がナショーンから出てくるようにマッピングすることですが、ScriptObjectMirror
がMap
を実装しているため、より高いインターフェイスで作業できるはずです。
Map<String, Object>
からpojo/beanにマップできるマッピングライブラリ(Dozerなど)はありますか?Map <String、Object>からpojo/beanにマッピングできるJavaマッピングライブラリは何ですか?
私の具体的な使用例は、ScriptObjectMirror
がナショーンから出てくるようにマッピングすることですが、ScriptObjectMirror
がMap
を実装しているため、より高いインターフェイスで作業できるはずです。
正確には重複していませんが、私はthis questionが簡単な答えを提供しています。
本質的に、ジャクソンのObjectMapper
は、一般的に知られているJSON機能に加えて、オブジェクトからオブジェクトへのマッピングに使用できます。以下のコードは、これを2行で簡単に行う方法を示しています。
final ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper
final MyPojo pojo = mapper.convertValue(map, MyPojo.class);
orika mapperを使用できます。これは非常に柔軟で拡張可能です。 詳細はhereです。
user guideを読んでください。
FAQにも記載されています。
私は、コレクションに含まれるオブジェクトをマッピングするか、フィールドにマッピング、またはその逆
はいできます。 (バージョン1.3.0以降) Bean to Mapを使用するには、mapperFactory.classMap(...)メソッドを使用してクラスマップを通常のように定義し、タイプの1つを割り当て可能なクラス(またはタイプ)として渡します〜java.util.Map。方程式のマップ側のフィールド名がマップキーとして使用されます。
このようなシナリオでbyDefault()メソッドを使用すると、Beanタイプのすべてのプロパティがプロパティ名によってマップタイプにマップされます。
Beanのリストまたは配列については、前述のマップと同じ方法を使用しますが、キー値を提供する代わりに、Bean値を格納する配列またはリスト内にインデックス値を指定します。
これは難しくありません。もちろん、ターゲットクラスを自分で定義する必要があります。 –
@ JornVerneeライブラリまたは手動マッピング?どちらの方法も簡単ですが、手動によるマッピングは労力を要します。既存のライブラリの多くは、実装が面倒な高度な機能を備えています。 – kag0