[英]Jackson ObjectMapper: readValue returns null
我需要解析這個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
類的屬性並不完全相同,但是我希望獲得具有“ common” json屬性的參考
沒有堆棧跟蹤,我們幾乎不知道錯誤是什么。 但是,從該問題可以看出, document
屬性未映射到Reference
類的任何字段。
因此,您可以:
將document
屬性映射到字段。
在Reference
類中使用@JsonIgnoreProperties("document")
忽略document
屬性。 或者,您可以使用@JsonIgnoreProperties(ignoreUnknown = true)
忽略任何未知屬性。
通過禁用DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
將您的ObjectMapper
配置為忽略未知屬性。 見下文:
ObjectMapper mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); Reference reference = mapper.readValue(jsonDocument, Reference.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.