javaにおけるmapと実体類の相互変換操作
javaにおけるmapと実体類の相互変換
1.pom.xmlに依存パッケージを導入する
mapをエンティティクラスに変換する2つの方法
今日はプロジェクトを書く時に、mapの中の値を対応するエンティティ類に書く必要があります。以前は同じ問題があった時に必要なデータはいくつかのフィールドしかないので、getとsetの方式を通じて感じてもいいです。特に面倒ではないです。今回はほとんどのフィールドが必要です。全部で十数個がありますが、やはりこれを採用するのは面倒くさいです。
資料を調べて、いい方法が二つあります。
方法1
方法2
以上は個人の経験ですので、参考にしていただければと思います。
1.pom.xmlに依存パッケージを導入する
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
2.制御クラスに導入する
import com.alibaba.fastjson.JSON;
3.タイプ変換
JSON.parseObject(JSON.toJSONString( ), .class);
// Map
User user = JSON.parseObject(JSON.toJSONString(user01), User.class);
System.out.println(user);
// Map
Map map = JSON.parseObject(JSON.toJSONString(user), Map.class);
System.out.println(map);
4.変換成功mapをエンティティクラスに変換する2つの方法
今日はプロジェクトを書く時に、mapの中の値を対応するエンティティ類に書く必要があります。以前は同じ問題があった時に必要なデータはいくつかのフィールドしかないので、getとsetの方式を通じて感じてもいいです。特に面倒ではないです。今回はほとんどのフィールドが必要です。全部で十数個がありますが、やはりこれを採用するのは面倒くさいです。
資料を調べて、いい方法が二つあります。
方法1
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.30</version>
</dependency>
JSON.parseObject(JSON.toJSONString(Map<String, ? extends Object>), Class<T> bean);
fastjsonを通じて、まずmapをjson文字列に変換してから、json文字列を実体類に変換します。方法2
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
BeanUtils.populate(Object bean, Map<String, ? extends Object> map)
この方法はmap<key、value>のkeyを遍歴します。beanにこの属性があれば、このkeyに対応するvalue値をbeanの属性に与えます。以上は個人の経験ですので、参考にしていただければと思います。