Java 我在POJO中有JSON结构,在HashMap中有动态数据。我想将HashMap中的数据设置为POJO以发送有效负载,我如何实现这一点?

Java 我在POJO中有JSON结构,在HashMap中有动态数据。我想将HashMap中的数据设置为POJO以发送有效负载,我如何实现这一点?,java,json,hashmap,pojo,rest-assured,Java,Json,Hashmap,Pojo,Rest Assured,我在POJO中有JSON结构,在HashMap中有动态数据。现在我想将Hashmap中的数据设置为POJO,以在API中发送有效负载,如何实现这一点 POJO类: 包pojo; 导入java.util.List; 公共类PostAccountCreateAPI{ 私有字符串名; 私有字符串LastName; 私有字符串密码; 私人名单电子邮件; 公共PostAccountCreateAPI(){} 公共PostAccountCreateAPI(字符串FirstName、字符串LastName、字

我在POJO中有JSON结构,在HashMap中有动态数据。现在我想将Hashmap中的数据设置为POJO,以在API中发送有效负载,如何实现这一点

POJO类:

包pojo;
导入java.util.List;
公共类PostAccountCreateAPI{
私有字符串名;
私有字符串LastName;
私有字符串密码;
私人名单电子邮件;
公共PostAccountCreateAPI(){}
公共PostAccountCreateAPI(字符串FirstName、字符串LastName、字符串密码、列表电子邮件){
this.FirstName=FirstName;
this.LastName=LastName;
this.PASSWORD=密码;
this.Email=电子邮件;
}
public void setFirstName(字符串FirstName){
this.FirstName=FirstName;
}
公共字符串getFirstName(){
返回这个.FirstName;
}
public void setLastName(字符串LastName){
this.LastName=LastName;
}
公共字符串getLastName(){
返回this.LastName;
}
public void setPASSWORD(字符串密码){
this.PASSWORD=密码;
}
公共字符串getPASSWORD(){
返回此密码;
}
公用电子邮件(列出电子邮件){
this.Email=电子邮件;
}
公共列表getEmail(){
返回此邮件;
}
}
数据存储在Hashmap中,如下所示:

{PASSWORD=p@$$word123, LASTNAME=LoUSj, FIRSTNAME=FSFBE, 
EMAIL_TYPE=Primary, VALUE=test7EZK0@mail7.io}

如何将
Hashmap
中的值直接分配给POJO以创建API负载?

POJO中可能会提供一个构造函数来接受映射

公共PostAccountCreateAPI(地图){
这个(
map.get(“FIRSTNAME”)、map.get(“LASTNAME”),
map.get(“密码”)、Arrays.asList(map.get(“值”))
);
}
或某种实用方法:

公共类PojoBuilder{
公共静态PostAccountCreateAPI创建(映射){
返回新的PostAccountCreateAPI(
map.get(“FIRSTNAME”),
map.get(“LASTNAME”),
map.get(“密码”),
Arrays.asList(map.get(“VALUE”))
);
}
}

更新

如果映射中的键因不同的映射而不同,则需要提供键的列表(或数组)进行迭代,然后假设列表中的所有相关键都按适当的顺序排列:

publicstaticpostaccountcreateapi创建(映射映射,列表键){
返回新的PostAccountCreateAPI(
map.get(keys.get(0)),//key0-firstName
map.get(keys.get(1)),//key1-lastName
map.get(keys.get(2)),//key2-password
Arrays.asList(keys.get(3))//key3-email
);
}

您是否尝试过
pojoObj.setPassword(dataMap.get(“PASSWORD”)和类似的其他字段?是的,我这样做了,但我正在搜索其他优化方法。如果您对答案有更具体的要求,请确保您的问题。当你说优化时,你是指性能还是指“优化”代码量?谢谢,Alex。在hashmap中,我总是会得到不同的键和值,因此,有没有任何方法可以迭代hashmap中的数据,而不考虑其键和值?并将值设置为POJO?
Map
通过
entrySet
提供其条目集,并通过
keySet
提供键集,这些键集可以被迭代,但
HashMap
不保证顺序。如果您知道密钥名称,则应随地图提供一份密钥列表。考虑到上述示例,您能否说明我们如何做到这一点?@ArpitaGarg,您是否看到答案中的更新?