我有一组带有变量的bean。我想将它们转换为另一个bean,即具有名称和值的参数。我需要在名称 - 值对中创建所有变量的参数列表。
我在考虑Dozer或mapstruct,但这似乎并没有多大帮助。
今天,使用objectmapper将其转换为地图,迭代地图并创建参数列表。
任何帮助都将不胜感激。
答案 0 :(得分:0)
class TestClass{
private String str1;
private String str2;
private String str3;
}
Class Paramters{
private String name;
private String value;
}
**Bean1:**
'[
{
"str1": "string",
"str2": "string",
"str3": "string"
},
{
"str1": "string1",
"str2": "string1",
"str3": "string1"
}
]'
To Convert **Bean2**
'[{
"parameters": [
{
"name": "str1",
"value": "string"
},
{
"name": "str2",
"value": "string"
},
{
"name": "str3",
"value": "string"
}
]
},
{
"parameters": [
{
"name": "str1",
"value": "string"
},
{
"name": "str2",
"value": "string"
},
{
"name": "str3",
"value": "string"
}
]}]'
答案 1 :(得分:0)
Mapstruct等通常会从一个bean转换为另一个bean,您实际上是在尝试转换为映射并将其包装到bean中。 像BeanMap之类的东西会更合适。
未经测试的示例代码:
class Bean2 {
private final Map<String, Object> properties;
public Bean2(Map properties) { this.properties = properties }
public static class Entry { String name, String value /* getters and setters */}
@JsonProperty
public List<Map<String, Object>> getProperties() {
// build a map of maps here, each map would have
}
}
然后只是:
new Bean2(new BeanMap(bean2))