Я использую jackson-databind-2.9.8.jar
.
Это представление класса Java
модели, которое будет содержать десериализованный JSON
String
.
@JsonIgnoreProperties(ignoreUnknown = true)
public class CustomClass {
@JsonProperty("key-one")
private String keyOne;
@JsonProperty("key-two")
private String keyTwo;
@JsonProperty("key-three")
private String keyThree;
@JsonCreator
public CustomClass(
@JsonProperty("key-one") String keyOne,
@JsonProperty("key-two") String keyTwo,
@JsonProperty("key-three") String keyThree) {
this.keyOne = keyOne;
this.keyTwo = keyTwo;
this.keyThree = keyThree;
}
}
Затем приведенный ниже код анализирует json
, который содержит структуру JSON
внутри String
.
ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, true);
CustomClass customClass;
try {
customClass = mapper.readValue(json, CustomClass.class);
} catch (IOException e) {
System.out.println("Parse error");
e.printStacktrace();
}
Проблема в том, что, если любое из свойств:
key-one
key-two
key-three
отсутствуют в json
, Exception
будет брошено.
Я хотел бы бросить Exception
, если key-one
или key-two
отсутствует, и пусть key-three
будет необязательным.
Как мне этого добиться?