0

我正在使用 Jersey(Jackson POJO 映射)构建一个 RESTful 服务并且有一些疑问......想象一个类似论坛的应用程序,在该域中我有GroupQuestion POJO。

组.java

class Group{
    int id;
    String name;
 //setter/getters
}

问题.java

class Question{
    int id;
    String title;
    String text;
  //setter/getters

} 

如您所见,我没有在这两个类之间定义任何关系。我想说的是 Group 没有

private Question[] questions;

当我调用 GET /rest/groups 时,我得到了一个完美的 JSON:

{
   [
     {"id":1, "name":"Group name..." },
     {"id":2, "name":"Group name..." }

   ]
}

当我请求 GET /rest/groups/12 时,我想要得到的是:

 {
   "group":{
       "id":12,
       "name":"Group 12"

    },
    "questions":[
           {"id":102, "title":"question title..." },
           {"id":201, "title":"question title..." }   
     ]

}

通过在 Group 类中定义一个成员变量,我能够得到类似的东西:

 private Question[] questions;

我试图从 HAS-A 依赖项中清除我的域类,因为我将使用 Hibernate 并将通过注释定义关系。问题是:对于与另一个具有HAS-A关系的资源,我想要返回的JSON格式最好和最灵活的方式是什么......

4

1 回答 1

0

您需要构建类似GroupResponse对象的东西:

class GroupRespose {
  final Group question;
  final List<Question> questions;
}

并将其用作您的响应对象。这将为您提供所需的格式(尽管考虑到您的问题,我怀疑您确实想要final Group group并且这是问题中的错字)。

于 2013-02-20T20:25:26.123 回答