REST APIを作成するにはジャージーではなくジャックソンのみを使用しています。私は2つのモデルオブジェクト、JSONでのカスタムオブジェクトの表示
public class Course {
private int id;
private String name;
private Teacher teacher;
}
public class Teacher {
private int id;
private String givenName;
private String familyName;
}
私はサービスを作成し、コースオブジェクトのリストを返すよ、ディスプレイが期待されているよう
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}}]
今、私をしましたJSONオブジェクトをカスタマイズして、教師IDだけで次の形式で表示したいと考えています。
[{"id":"100","name":"Introduction to Java","teacherId":"201"},{"id":"101","name":"Intermediate Java","teacherId":"201"}
これは私が設計したビューモデルです。
@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;
}
}
そして、このメソッドを使用して、ビューオブジェクトのリストを返します。
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;
}
これは私が得た結果です。
[{},{},{}]
私は間違っています。
が実際にそれを固定
テストケース。クラスにゲッターとセッターがない場合、これはオブジェクトの印刷方法です。私はgettersとセッターを追加し、それは正常に働いた。ありがとう。 – Zeus