【发布时间】:2021-12-26 11:02:03
【问题描述】:
我正在尝试对所有参数仅使用一个函数对对象发出 PUT 请求。假设我有这个对象结构(JSON):
{
"id": 3,
"name": "test",
"dominio": "dom",
"altas": "6",
"bajas": "2",
"default_group": [
{
"idRef": 1,
"name": "Users",
"path": "OU=es"
}
],
"office": [
{
"idRef": 1,
"title": "Intern",
"name": "CN=Office license",
"path": "OU=licenseOffice"
},
{
"idRef": 2,
"title": "Specialist",
"name": "CN=Office License F3",
"path": "OU=LicenseGroupF"
}
]
}
我设法使用带有类的 getter 的 Map 函数为 GET 请求执行此操作。
为此,我使用 GET 请求在 HTTP 请求中传递了属性名称:
Map<String, Function<Compania, Object>> mapCompania = Map.of(
"name", Compania::getName,
"dominio", Compania::getDominio,
"altas", Compania::getAltas,
"bajas", Compania::getBajas,
"default_group", Compania::getDefault_group,
"office", Compania::getOffice
);
Function<Compania, Object> retriever = mapCompania.get(fieldName);
但是现在,我找不到实现相同功能的方法,只能使用 setter 方法。比如:
PUT localhost/myClass/3/name --> 它使用 MyClass.setName(input...)
或者:
PUT localhost/myClass/3/office --> 它使用 MyClass.setOffice(Object office)
谁能帮我实现这个目标?非常感谢
【问题讨论】:
标签: java json spring-boot api