Мне нужно разобрать этот json:
{
"id":"cpd4-b39c4b2a-b5cb-4581-b519-6034aaa7fe4e",
"transactionId":"768a9be4-b5b3-452f-9bd3-9fff2e9ace5c",
"status":"PUBLIC",
"confidential":true,
"expiringAt":1231231,
"locked":true,
"metadata":[
{
"user":"admin",
"creationTimestamp":1538578453285,
"value":"metadata"
}
],
"security":"read",
"timestampCreation":1538578453285,
"userCreation":"admin",
"appCreation":"app",
"document":{
"id":null,
"transactionId":"768a9be4-b5b3-452f-9bd3-9fff2e9ace5c",
"docId":"68aab3799a9380fe82ed43ff2d46a5b07da1b270-1282",
"size":1282,
"name":"pom.xml",
"alias":"alias",
"hash":"68aab3799a9380fe82ed43ff2d46a5b07da1b270",
"title":"title",
"encoding":"UTF-8",
"mimeType":"application/xml"
}
}
к объекту класса Reference:
public class Reference {
private String id;
private String transactionId;
private DocumentStatus status;
private Boolean confidential;
private Integer expiringAt;
private Boolean locked;
private List<Metadata> metadata;
private String security;
// IDReferenciaAlta
private Date timestampCreation;
private String userCreation;
private String appCreation;
private Date timestampModified;
private String userModified;
private String appModified;
private Date timestampDeletion;
private String userDeletion;
private String appDeletion;
//getters and setters...
}
где Metadata - это:
public class Metadata {
private String user;
private Date creationTimestamp;
private String value;
//getters an setters
}
В настоящее время я использую этот код:
Reference reference = null;
try {
reference = this.mapper.readValue(jsonDocument, Reference.class);
} catch (IOException e1) {
// TODO: Throw domain exception...
e1.printStackTrace();
}
Проблема в том, что this.mapper.readValue(...) возвращает null.
Я знаю, что схема json и свойства класса Reference не совсем совпадают, но я ожидал получить ссылку с "общими" свойствами json.
Пожалуйста, поделитесь трассировкой стека
Если вы хотите игнорировать данные документ, попробуйте добавить @JsonIgnoreProperties ({"документ"}) в свой класс Ссылка
что такое DocumentStatus -> частный статус DocumentStatus;




Без трассировки стека мы почти не понимаем, в чем заключается ошибка. Однако из того, что можно увидеть в этом вопросе, свойство document не отображается ни в какое поле класса Reference.
Так что вы можете либо:
Сопоставьте свойство document с полем.
Используйте @JsonIgnoreProperties("document") в классе Reference, чтобы игнорировать свойство document. В качестве альтернативы вы можете использовать @JsonIgnoreProperties(ignoreUnknown = true), чтобы игнорировать любые неизвестные свойства.
Настройте ObjectMapper на игнорирование неизвестных свойств, отключив DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES. См. Ниже:
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
Reference reference = mapper.readValue(jsonDocument, Reference.class);
А как насчет узла
document?