Я считаю, что вам следует ответить 404 «НЕ НАЙДЕНО», поскольку такого устройства нет с unknown_any_param = 2.
Тем не менее, если вы хотите проверить -
Вы можете использовать Reflection API, чтобы проверить, действителен ли ключ. Рассмотрим-
public class DeviceDto{
private String knownValue;
@JsonProperty("unknown_any_param")
private String unknownValue;
}
случай 1: Если параметр такой же, как имя переменной.
DeviceDto.class.getDeclaredField("knownValue");
случай 2: Если параметр такой же, как значение в @JsonProperty, и вы знаете переменную name
DeviceDto.class.getDeclaredField("unknownValue")
.getAnnotation(JsonProperty.class)
.value();
case 2: Если параметр такой же, как значение в @JsonProperty, и вы не знаете имя переменной
Arrays.asList(DeviceDto.class.getDeclaredFields()).stream()
.filter(r -> "unknown_any_param"
.equals(r.getAnnotation(JsonProperty.class).value()))
.findFirst();