我需要解析这个 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"
}
}
Run Code Online (Sandbox Code Playgroud)
到对象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...
}
Run Code Online (Sandbox Code Playgroud)
哪里Metadata:
public class Metadata {
private String user;
private Date creationTimestamp;
private String value;
//getters an setters
}
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用这段代码:
Reference reference = null;
try {
reference = this.mapper.readValue(jsonDocument, Reference.class);
} catch (IOException e1) {
// TODO: Throw domain exception...
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
问题是this.mapper.readValue(...)返回null.
我知道 json 模式和Reference类属性并不完全相同,但我希望获得“常见”json 属性的引用
如果没有堆栈跟踪,我们几乎不知道错误是什么。但是,从这个问题中可以看出,该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);
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
33777 次 |
| 最近记录: |