Я пытаюсь отобразить информацию о следующем JSON.Retrofit2: Показать объект Json в массиве
{
"resourceType": "Patient",
"text": {
"status": "generated",
"div": "<div>\n \n <table>\n \n <tbody>\n \n <tr>\n \n <td>Name</td>\n \n <td>Peter James \n <b>Chalmers</b> ("Jim")\n </td>\n \n </tr>\n \n <tr>\n \n <td>Address</td>\n \n <td>534 Erewhon, Pleasantville, Vic, 3999</td>\n \n </tr>\n \n <tr>\n \n <td>Contacts</td>\n \n <td>Home: unknown. Work: (03) 5555 6473</td>\n \n </tr>\n \n <tr>\n \n <td>Id</td>\n \n <td>MRN: 12345 (Acme Healthcare)</td>\n \n </tr>\n \n </tbody>\n \n </table> \n \n </div>"
},
"identifier": [
{
"fhir_comments": [
" MRN assigned by ACME healthcare on 6-May 2001 "
],
"use": "usual",
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/v2/0203",
"code": "MR"
}
]
},
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345",
"period": {
"start": "2001-05-06"
},
"assigner": {
"display": "Acme Healthcare"
}
}
],
"active": true,
"name": [
{
"fhir_comments": [
" Peter James Chalmers, but called \"Jim\" "
],
"use": "official",
"family": [
"Chalmers"
],
"given": [
"Peter",
"James"
]
},
{
"use": "usual",
"given": [
"Jim"
]
}
],
"telecom": [
{
"fhir_comments": [
" home communication details aren't known "
],
"use": "home"
},
{
"system": "phone",
"value": "(03) 5555 6473",
"use": "work"
}
],
"gender": "male",
"_genderInfo": {
"fhir_comments": [
" use FHIR code system for male/female "
]
},
"birthDate": "1974-12-25",
"_birthDateInfo": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthTime",
"valueDateTime": "1974-12-25T14:35:45-05:00"
}
]
},
"deceasedBoolean": false,
"address": [
{
"use": "home",
"type": "both",
"line": [
"534 Erewhon St"
],
"city": "PleasantVille",
"district": "Rainbow",
"state": "Vic",
"postalCode": "3999",
"period": {
"start": "1974-12-25"
}
}
],
"contact": [
{
"relationship": [
{
"coding": [
{
"system": "http://hl7.org/fhir/patient-contact-relationship",
"code": "partner"
}
]
}
],
"name": {
"family": [
"du",
"Marché"
],
"_familyInfo": [
{
"extension": [
{
"fhir_comments": [
" the \"du\" part is a family name prefix (VV in iso 21090) "
],
"url": "http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier",
"valueCode": "VV"
}
]
},
null
],
"given": [
"Bénédicte"
]
},
"telecom": [
{
"system": "phone",
"value": "+33 (237) 998327"
}
],
"gender": "female",
"period": {
"start": "2012",
"_startInfo": {
"fhir_comments": [
" The contact relationship started in 2012 "
]
}
}
}
]
}
Мой класс для @GET
public interface RetrofitObjectAPI {
@GET("Patient/4765?_format=json")
Call<Patient> getPatientDetails();
}
Я создал MOJO с http://www.jsonschema2pojo.org/ (Getter и Setter укорочены только для отображения важной)
public class Patient {
private String resourceType;
private int id;
private Text text;
private List<Identifier> identifier = null;
private boolean active;
private List<Name> name = null;
private List<Telecom> telecom = null;
private String gender;
private GenderInfo genderInfo;
private String birthDate;
private BirthDateInfo birthDateInfo;
private boolean deceasedBoolean;
private List<Address> address = null;
private List<Contact> contact = null;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
public List<Name> getName() {
return name;
}
public void setName(List<Name> name) {
this.name = name;
}
Класс имя выглядит например
public class Name {
private List<String> fhirComments = null;
private String use;
private List<String> family = null;
private List<String> given = null;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
public List<String> getFhirComments() {
return fhirComments;
}
public void setFhirComments(List<String> fhirComments) {
this.fhirComments = fhirComments;
}
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
public List<String> getFamily() {
return family;
}
public void setFamily(List<String> family) {
this.family = family;
}
public List<String> getGiven() {
return given;
}
public void setGiven(List<String> given) {
this.given = given;
}
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
я могу получить информацию без массива, как это:
public void getRetrofitObject() {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
RetrofitObjectAPI service = retrofit.create(RetrofitObjectAPI.class);
Call<Patient> callPatient = service.getPatientDetails();
callPatient.enqueue(new Callback<Patient>() {
@Override
public void onResponse(Call<Patient> call, Response<Patient> response) {
text_id_1.setText("Resource Type: " + response.body().getResourceType());
text_id_2.setText("ID: " + response.body().getId());
text_id_3.setText("Text: " + response.body().getText().getStatus());
}
@Override
public void onFailure(Call<Patient> call, Throwable t) {
Log.d("x", "x");
}
});
}
Этот код, пока эта точка не работает так, как предполагается. Но я не мог понять, как отображать элементы массива. Например, я хочу отобразить поданное «использование» или «данное» в «имя». Как я могу получить к ним доступ?