首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java将对象转为Map,可以采用四种方法,最后一种令人拍案称奇

Java将对象转为Map,可以采用四种方法,最后一种令人拍案称奇

作者头像
大风写全栈
发布2024-10-30 19:16:04
发布2024-10-30 19:16:04
5.9K0
举报
文章被收录于专栏:锤子代码锤子代码

Java将对象转为Map,可以采用四种方法,只有最后一种是最方便的。

使用 Jackson

可以先将对象序列化为JSON字符串,然后再将该字符串反序列化为Map对象。

代码语言:javascript
复制
ObjectMapper mapper = new ObjectMapper();
User user = new User();
String jsonInString = mapper.writeValueAsString(user);
Map<?, ?> mapRepresentation = mapper.readValue(jsonInString, Map.class);
System.out.println(mapRepresentation);

使用 Gson

与Jackson类似,Gson也可以用来将Java对象转换为Map。

代码语言:javascript
复制
Gson gson = new Gson();
User user = new User();
Type targetType = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> mapRepresentation = gson.fromJson(gson.toJson(user), targetType);
System.out.println(mapRepresentation);

使用 Guava

Guava 不直接支持对象到Map的转换。需要手动创建Map并填充数据。

代码语言:javascript
复制
User user = new User();

Map<String, Object> mapRepresentation = Maps.newHashMap();
for (Field field : user.getClass().getDeclaredFields()) {
    field.setAccessible(true);
    mapRepresentation.put(field.getName(), field.get(user));
}

System.out.println(mapReflection);

使用 Hutool

Hutool有一个BeanUtil类可以直接将对象转换为`Map`。

代码语言:javascript
复制
User user = new User();
Map<String, Object> mapRepresentation = BeanUtil.beanToMap(user);
System.out.println(mapRepresentation);

是不是觉得有Hutool方便多了?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 锤子代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档