繁体   English   中英

从黄瓜功能文件更新 json 有效负载的最佳方法

[英]Best way to update json payload from cucumber feature file

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

从黄瓜数据表中更新部分 Json 数据的最佳方法是什么?

提前致谢 !!!

原始Json:

{
    "accNum": "Dummy_Account",
    "customerData": {
        "customerName": "Dummy_Name",
        "customerAddress": "Dummy_Address"
        
    },
    "accountData": {
        "cashAccountRef": "Dummy",
        "acntCrncy": "EUR",
        "foreignCurrencyAccounts": [
            {
                "foreignCurrency": "USD",
                "foreignCrncyAcntRef": "Dummy2"
                
            }
        ]
    }
    ]
}

黄瓜功能文件

Given Prepare Input request for below data
      | accNum                                                 | 12345   |
      | customerData.customerName                              | New Name|
      | accountData.foreignCurrencyAccounts[0].foreignCurrency | EUR     |

要作为输入传递的最终 Json

{
    "accNum": "12345",
    "customerData": {
        "customerName": "New Name",
        "customerAddress": "Dummy_Address"
        
    },
    "accountData": {
        "cashAccountRef": "Dummy",
        "acntCrncy": "EUR",
        "foreignCurrencyAccounts": [
            {
                "foreignCurrency": "EUR",
                "foreignCrncyAcntRef": "Dummy2"
                
            }
        ]
    }
    ]
}

如果您使用的是 POJO,请坚持使用这种方法。 使用 setter 来更新 key 的值,当然你也可以使用 builder 风格的 setter 让它更容易阅读。

我发现只有这样

((ObjectNode) parent).putRawValue(valueOfKeyToModify, new RawValue(newValue));

当有许多相同的键时,就会出现问题。 然后您需要阅读树并绕过它,直到它与需要更改的键完全匹配。

如果你需要放置字符串,那么你还必须指定引号,因为它放置了原始值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM