我有一个复杂的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。
和像-
一样构建pojoFile 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中的元素