如何将对象转换为贴图
例如:
objectobj=新的myObject(“Joe”、“Doe”)
转换为
地图
,键为:姓名、姓氏和值:Joe,Doe。
这就是你要做的:
import java.util.Map;
import java.util.HashMap;
import java.util.Map.Entry;
import java.lang.reflect.Field;
public class Main {
public int a = 3;
public String b = "Hello";
public static void main(String[] args) {
Map<String, Object> map = parameters(new Main());
for (Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
public static Map<String, Object> parameters(Object obj) {
Map<String, Object> map = new HashMap<>();
for (Field field : obj.getClass().getDeclaredFields()) {
field.setAccessible(true);
try { map.put(field.getName(), field.get(obj)); } catch (Exception e) { }
}
return map;
}
}
基本上,您可以使用反射来获取类中的所有字段。然后,访问对象的所有这些字段。请记住,这只适用于从获取字段的方法中访问的字段。
除了使用反射的技巧解决方案,您还可以尝试jackson
,其中一行如下:
objectMapper.convertValue(o, Map.class);
一个测试用例:
@Test
public void testConversion() {
User user = new User();
System.out.println(MapHelper.convertObject(user));
}
@Data
static class User {
String name = "Jack";
boolean male = true;
}
// output: you can have the right type normally
// {name=Jack, male=true}
问题内容: 我将直接从问题开始,稍后再提供更多背景信息。 简单 :我有一个,它代表一个特定的对象。将其转换为该对象的最佳方法是什么? 我知道您可以使用泛型来遍历所有元素并设置字段,但是什么是嵌套对象呢? 背景 :我有一个使用JSON对象的JAX- RS服务。我的服务处理不同类型的对象,仅代表一个接口。因此,我不知道哪些对象来自外部以及哪个程序正在使用我的服务。 在运行时,我通过界面上的信息。JAX
我有这样一个实体对象: 现在我有一张这样的地图:
我正在寻找更好的性能(转换时间应该非常少)。 本文显示的是来自这个答案的不同API之间的性能统计。 例如,我的发现是我提到的第一个链接(只有很少的记录): null 请帮帮我。
我有下面的pojo 此employee类用于从mybatis orm获取对象列表(list)。 mybatis将输出作为列表返回,因为mybatis不支持将Map作为返回类型 我必须把它转换成地图 我尝试了下面的方法,但没有成功,因为它需要getName()和getId()方法 请告知是否有一种方法可以在不修改员工pojo的情况下使用stream实现。 注意:我知道我们可以使用ofr或for ea
问题内容: 我对用Java转换对象的含义感到困惑。 说你有… 这是怎么回事 变量类型会更改吗,还是变量内的对象会更改?很迷茫。 问题答案: 看一下这个样本:
我在groovy类中有一个Restendpoint,其方法签名如下...... 是一个。在我的post请求中,我传递json。 如果我这样做,我可以看到参数(注意:我知道这是在java样式循环中打印字符串。这不是我想要的)...... 我想要的是一种转换使用groovy读取一个漂亮的Json对象,然后从Json对象读取属性? 谢谢