Java Android Studio:如何使用Spring Resttemplate获取包含对象列表的对象
我必须承认,我需要一些帮助。 我只有3周的Rest经验,2周的Grails经验和一周的Android Studio经验,所以我希望你不要对我太苛刻。 我从grails服务器获得了这个Json:Java Android Studio:如何使用Spring Resttemplate获取包含对象列表的对象,java,android,json,spring,resttemplate,Java,Android,Json,Spring,Resttemplate,我必须承认,我需要一些帮助。 我只有3周的Rest经验,2周的Grails经验和一周的Android Studio经验,所以我希望你不要对我太苛刻。 我从grails服务器获得了这个Json: {"class":"medicserver.Medication", "id":1,"dateOfPrescription":"2015-09-19T08:12:34Z", "description":"Meds", "medicationUnit":[{"class":"medicserver.Medi
{"class":"medicserver.Medication",
"id":1,"dateOfPrescription":"2015-09-19T08:12:34Z",
"description":"Meds",
"medicationUnit":[{"class":"medicserver.MedicationUnit","id":1},{"class":"medicserver.MedicationUnit","id":2},{"class":"medicserver.MedicationUnit","id":3}],
"patient":null}
你看,属性“MedicalationUnit”是MedicalationUnit的列表,这是我的ResponseObject在创建时唯一没有的东西。我就是不明白。
以下是Rest代码:
RestTemplate restTemplate = new RestTemplate();
MappingJackson2HttpMessageConverter mapping = new MappingJackson2HttpMessageConverter();
mapping.setObjectMapper(new ObjectMapper());
restTemplate.getMessageConverters().add(mapping);
Medication medication = restTemplate.getForObject(url , Medication.class);
return medication;
我的类-plaese忽略静态类型。这是为了实现内部类:
@JsonIgnoreProperties(ignoreUnknown = true)
static class Medication{
String description;
MedicationUnit[] medicationUnit;
Date dateOfPrescription;
public Medication(){
}
public void setDescription(String description){
this.description = description;
}
public String getDescription(){
return this.description;
}
public void setMedicationUnit(MedicationUnit[] medicationUnit){
this.medicationUnit = medicationUnit;
}
public MedicationUnit[] getMedicationUnit(){
return this.medicationUnit;
}
public void setDateOfPrescription(Date dateOfPrescription){
this.dateOfPrescription = dateOfPrescription;
}
public Date getDateOfPrescription(){
return this.dateOfPrescription;
}
public String postAll(){
String result = this.description + "\n" + String.valueOf(this.dateOfPrescription) + "\n";
for(MedicationUnit med: this.medicationUnit){
result = result + med.postAll();
}
return result;
}
}
药物单位:
@JsonIgnoreProperties(ignoreUnknown = true)
static class MedicationUnit {
String name="Hans";
Date intakeTime=new Date(0);
int dosage=3;
public MedicationUnit(){
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setIntakeTime(Date intakeTime){
this.intakeTime=intakeTime;
}
public Date getIntakeTime(){
return this.intakeTime;
}
public void setDosage(int dosage){
this.dosage=dosage;
}
public int getDosage(){
return this.dosage;
}
private String postAll(){
String result;
result = this.name + " " + String.valueOf(this.intakeTime) + " " + String.valueOf(dosage) + "\n";
return result;
}
}
JSON表示单位的类别是
medicserver.MedicationUnit
。但是您的MedicalationUnit类似乎嵌套在另一个类中,因此它的名称不是medicserver.MedicalationUnit
。您是否在客户端和服务器之间使用不同的类?我的MedicinationUnit、Medicing和Rest函数位于同一活动中。MedicalationUnit和我的服务器配合得很好。我已经编写了一个额外的API来确保它。唯一的问题是药物清单。我肯定你没有回答我的问题。您是否使用完全相同的类在服务器上生成JSON并在客户端读取它?如果没有,那就做吧。谢谢,我会努力的,我不完全了解这个主题。我认为需要的组件是用json编码的。我的团队成员编写了这个部分,它看起来像一个映射表。我会再问他一点关于这一点,好吧,错误在服务器的某个地方。我得问问我的朋友!再次感谢你抽出时间,你救了我一天,伙计!:数据JSON表示单位的类别为medicserver.MedicationUnit
。但是您的MedicalationUnit类似乎嵌套在另一个类中,因此它的名称不是medicserver.MedicalationUnit
。您是否在客户端和服务器之间使用不同的类?我的MedicinationUnit、Medicing和Rest函数位于同一活动中。MedicalationUnit和我的服务器配合得很好。我已经编写了一个额外的API来确保它。唯一的问题是药物清单。我肯定你没有回答我的问题。您是否使用完全相同的类在服务器上生成JSON并在客户端读取它?如果没有,那就做吧。谢谢,我会努力的,我不完全了解这个主题。我认为需要的组件是用json编码的。我的团队成员编写了这个部分,它看起来像一个映射表。我会再问他一点关于这一点,好吧,错误在服务器的某个地方。我得问问我的朋友!再次感谢你抽出时间,你救了我一天,伙计!:D