如何从黄瓜数据表中更新Json负载中的多个字段



我有一个复杂的Json,它就像一个web服务的输入。我已经为它创建了必要的POJO类,我在我的代码中使用Jackson对象映射器。

原始Json:

{
"accNum": "Dummy_Account",
"customerData": {
"customerName": "Dummy_Name",
"customerAddress": "Dummy_Address"

},
"accountData": {
"cashAccountRef": "Dummy",
"acntCrncy": "EUR",
"foreignCurrencyAccounts": [
{
"foreignCurrency": "USD",
"foreignCrncyAcntRef": "Reference"

}
]
}
]
}

黄瓜特征文件

Given Prepare Input request for below data
| requestbody.accNum                                                           | 12345        |
| requestbody.customerData.customerName                                        | New Name     |
| requestBody.accountData.acntCrncy                                            | INR          |
| requestBody.accountData.foreignCurrencyAccounts[0].foreignCrncyAcntRef       | New_Reference|

作为输入传递的最终Json

{
"accNum": "12345",
"customerData": {
"customerName": "New Name",
"customerAddress": "Dummy_Address"

},
"accountData": {
"cashAccountRef": "Dummy",
"acntCrncy": "EUR",
"foreignCurrencyAccounts": [
{
"foreignCurrency": "EUR",
"foreignCrncyAcntRef": "New_Reference"

}
]
}
]
}

我使用Lombok生成Pojo。

和像-

一样构建pojo
File file = new File("C:\User\Project\customerRequest.json");
var requestBody = objectMapper.readValue(file, ModifyCustomerRequest.class);

下面一行可以很好地更新现有的有效负载-

requestBody.accountData.acntCrncy="INR"; 

你知道如何在有效负载中更新多个字段吗?如下所示,我想在POJO中设置值。在我的步骤定义中,我读取黄瓜数据表为map -

Map<String, String> data = table.asMap(String.class, String.class); 
data.forEach((k,v) -> k=v );

这不会给出任何错误,但没有设置值。需要一些帮助,如何才能在数据表或代码的步骤定义可以操纵,以达到目的。

任何指针都是有用的。

提前感谢!!

类似于您的问题声明,解析更新json。

更新JSONObject中的元素

最新更新