Привет! Я использую ретро-фит, чтобы попытаться извлечь данные из json, который был возвращен. Проблема в том, что в json возвращены многочисленные идентификаторы, и я не могу понять, как получить идентификаторы отдельно. В настоящее время я получаю исключение нулевого указателя.
Это ответ, который я использую:
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"id",
"version",
"createdDate",
"modifiedDate",
"rie",
"diagnosisName"
})
public class GetFavouritesReponse {
@JsonProperty("id")
private Integer id;
@JsonProperty("version")
private Integer version;
@JsonProperty("createdDate")
private Object createdDate;
@JsonProperty("modifiedDate")
private Object modifiedDate;
@JsonProperty("rie")
private Boolean rie;
@JsonProperty("diagnosisName")
private String diagnosisName;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
@JsonProperty("id")
public Integer getId() {
return id;
}
@JsonProperty("id")
public void setId(Integer id) {
this.id = id;
}
@JsonProperty("version")
public Integer getVersion() {
return version;
}
@JsonProperty("version")
public void setVersion(Integer version) {
this.version = version;
}
@JsonProperty("createdDate")
public Object getCreatedDate() {
return createdDate;
}
@JsonProperty("createdDate")
public void setCreatedDate(Object createdDate) {
this.createdDate = createdDate;
}
@JsonProperty("modifiedDate")
public Object getModifiedDate() {
return modifiedDate;
}
@JsonProperty("modifiedDate")
public void setModifiedDate(Object modifiedDate) {
this.modifiedDate = modifiedDate;
}
@JsonProperty("rie")
public Boolean getRie() {
return rie;
}
@JsonProperty("rie")
public void setRie(Boolean rie) {
this.rie = rie;
}
@JsonProperty("diagnosisName")
public String getDiagnosisName() {
return diagnosisName;
}
@JsonProperty("diagnosisName")
public void setDiagnosisName(String diagnosisName) {
this.diagnosisName = diagnosisName;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
, и это метод, который я пытаюсь использовать
@Then("I get the list of favourites with {string} and {string}")
public void iGetTheListOfFavouritesWithAnd(String username, String password) throws Exception {
GetFavouritesReponse fave = new GetFavouritesReponse();
String auth = "Bearer " + LoginApi(username,password);
String list = favecall.getDiagnosisFavourites(true,auth).execute().body().toString();
System.out.println(list);
String id = fave.getId().toString();
System.out.println("Id is:" + id);
}
Вызов возвращает некоторые данные, но я не могу извлечь что-либо из них, вот пример того, что возвращается:
INFO: [ {
"id" : 15,
"version" : 0,
"createdDate" : null,
"modifiedDate" : null,
"rie" : false,
"diagnosisName" : "Angina pectoris - Angina pectoris with documented spasm"
}, {
"id" : 14,
"version" : 0,
"createdDate" : null,
"modifiedDate" : null,
"rie" : false,
"diagnosisName" : "Angina pectoris - Unstable angina"
}]
Я в основном пытаюсь извлечь идентификаторы из возвращенных данных и использовать их отдельно в еще один звонок, я предполагаю, что мне понадобятся некоторые oop некоторых типов, но я не могу даже получить какие-либо идентификаторы