I have the following sample fragment of JSON I am trying to deserialize.
JavaScript
x
{
"total": 2236,
"issues": [{
"id": "10142",
"key": "ID-2",
"fields": {
"attachment": [{
"id": "11132"
}]
}
}]
}
I can deserialize the data up to id and key, but cannot deserialize attachments that is in fields. My attachment class is always null
Here’s my code.
Response.java
JavaScript
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Response {
@JsonProperty
private int total;
@JsonProperty
private List<Issue> issues;
}
Issue.java
JavaScript
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Issue {
@JsonProperty
private int id;
@JsonProperty
private String key;
@JsonProperty
private Fields fields;
}
Fields.java
JavaScript
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Fields {
@JsonProperty
private Attachments attachment;
}
Attachments.java
JavaScript
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Attachments {
@JsonProperty
private List<Attachment> attachment;
}
Attachments.java
JavaScript
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Attachment {
@JsonProperty
private String id;
}
Advertisement
Answer
Think of each variable in your Java classes as corresponding to an attribute in the JSON. “Attachments” is not in the JSON file. You should be able to remove it and change the variable definition in the Fields
class.
JavaScript
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Fields {
@JsonProperty
private List<Attachment> attachment;
}