Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改Jersesy Jackson中的默认JSON_Java_Json_Jersey_Jackson - Fatal编程技术网

Java 更改Jersesy Jackson中的默认JSON

Java 更改Jersesy Jackson中的默认JSON,java,json,jersey,jackson,Java,Json,Jersey,Jackson,我正在使用Jersey(Jackson POJO mapping)构建一个RESTful服务,但有一些疑问。。。 想象一个类似论坛的应用程序,其中我在域中有组和问题POJO Group.java class Group{ int id; String name; //setter/getters } Question.java class Question{ int id; String title; String text; //setter/g

我正在使用Jersey(Jackson POJO mapping)构建一个RESTful服务,但有一些疑问。。。 想象一个类似论坛的应用程序,其中我在域中有问题POJO

Group.java

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

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

} 
正如您所看到的,我没有定义这两个类之间的关系。我想说的是,这个团体没有

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依赖项,因为我将使用Hibernate并通过注释定义关系。 问题是:
对于与另一个资源有关系的资源,我想要返回的JSON格式的最佳和最灵活的方式是什么…

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

class GroupRespose {
  final Group question;
  final List<Question> questions;
}
class-GroupRespose{
最后一组问题;
最后问题清单;
}

并将其用作响应对象。这将为您提供所需的格式(尽管考虑到您的问题,我怀疑您确实想要
最终分组
,这是问题中的输入错误)。

第二种json格式是问题、问题还是分组、问题?假设是打字错误对不起,是打字错误。。。这只是一个例子。。。谢谢…这是否意味着我将用于REST的域对象与ORM对象不同或包含更多的对象:1个表,1个对象,没有弱关联实体?好的,我想我会尝试将您的方法与Hibernate或MyBatis结合起来,看看它是如何进行的。。。还有一件事。。。为什么是决赛?我们不是因为习惯(我所有的对象都是不可变的)而错过了构造函数GroupResponse(Group-Group,Question[]questions)
final
。是的,您缺少构造函数和对象的所有其他位,但这是您需要的类的基本部分。至于您的第一个注释,如果您想要REST到ORM对象的1:1映射,那么它们将需要具有相同的数据并以相同的方式包含它。在您的情况下,这是不正确的,因此您需要在数据模型对象和数据传输对象之间进行一些转换。就我个人而言,我认为这对你正在做的事情来说可能是过分的,但如果你想按照你最初的问题去做,那就必须这样。我现在有一些疑问,因为我开始实现MyBatis层,其中的关系是通过集合变量来维护的,所以我的REST模型(以及你的建议)将不得不与我的MyBatis模型不同。。。