için özel nesne görüntüleme Bir REST api oluşturmak için sadece jersey kullanıyorum ve jackson kullanmıyorum. İki modeli nesneleriJSON
public class Course {
private int id;
private String name;
private Teacher teacher;
}
public class Teacher {
private int id;
private String givenName;
private String familyName;
}
Ben bir hizmet oluşturma ve Ders nesnelerinin bir listesi iade ediyorum, ekran beklendiği gibi
public List<Course> getAll(){
return db.getCourseList();
}
,
[{"id":101,"name":"Introduction to Java","teacher":{"familyName":"Bar","givenName":"Foo","id":201}},{"id":102,"name":"Intermediate Java","teacher":{"familyName":"Prank","givenName":"Foo","id":202}}]
Şimdi ben ettik JSON nesnesini, yalnızca öğretmen kimliğiyle aşağıdaki biçimde görüntülenecek şekilde özelleştirmek istiyorum.
[{"id":"100","name":"Introduction to Java","teacherId":"201"},{"id":"101","name":"Intermediate Java","teacherId":"201"}
Bu, tasarladığım görünüm modelidir.
@XmlRootElement
public class CourseTeacherIdView {
private int id;
private String name;
private int teacherId;
CourseTeacherIdView(){
}
public CourseTeacherIdView(int id, String name, int teacherId){
this.id = id;
this.name = name;
this.teacherId = teacherId;
}
}
Ve bu yöntemi, Görünüm listesi nesneleri döndürmek için kullanıyorum.
public List<CourseTeacherIdView> getAll(){
List<Course> list = db.getCourseList();
List<CourseTeacherIdView> viewList = new ArrayList<>();
for(Iterator<Course> itr = list.iterator(); itr.hasNext();){
Course c = (Course) itr.next();
viewList.add(new CourseTeacherIdView(c.getId(), c.getName(), c.getTeacher().getId()));
}
return viewList;
}
Bu, elde ettiğim sonuçtur. Neyi yanlış yapıyorum?
Aslında düzelttim. Görünüşe göre eğer sınıfta hiçbir alıcı ve ayarlayıcı yoksa, nesne nasıl yazdırılır. Getters ve setters ekledim ve iyi çalıştı. Teşekkürler. – Zeus