gpt4 book ai didi

java - 是否可以使用 Smooks 或其他转换器进行 Java 对象到映射转换?

转载 作者:行者123 更新时间:2023-12-01 15:11:31 26 4
gpt4 key购买 nike

我想要通用转换器,以便任何 Java 对象都转换为 Map,并且嵌套对象表示为嵌套 Map。例如

class MyA {
String a;
Integer b;
MyB c;
List<MyD> d;
}
class MyB {
Double a;
String b;
MyB c;
}
class MyD {
Double a;
String b;
}

转化为:

Map {
a:anyValue
b:5
c:Map {
c:Map {
a:asdfValue
b:5.123
c:Map {
a:fdaValue
b:3.123
c:null
}
}
}
d:Map {
1:Map {
a:aValue
b:5.5
}
2:Map {
a:bValue
b:5.6
}
}
}

请发布您针对任何转型框架的解决方案。

最佳答案

您实际上可以自己轻松实现:

public Map<String, Object> convertObjectToMap(Object o) throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
for (Field f : o.getClass().getDeclaredFields()) {
f.setAccessible(true);
Object value = f.get(o);
if ((value instanceof Integer) || (value instanceof String) /* other primitives... */)
map.put(f.getName(), value);
else if (value instanceof Collection<?>) {
int listindex = 0;
for (Object listitem : (Collection<?>)value)
map.put(f.getName() + "_" + listindex++, listitem);
}
else
map.put(f.getName(), convertObjectToMap(value));
}
return map;
}

关于java - 是否可以使用 Smooks 或其他转换器进行 Java 对象到映射转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com