我是Java的新手。我正在尝试显示JSON数据,因为我决定去杰克逊图书馆。但是我得到了错误。
我正在使用
jackson-annotations-2.3.0.jar
jackson-core-2.4.2.jar
jackson-databind-2.4.2.jar
这是我的对象,在这里我有一个依赖" tnStudentLocLog"
public class Student implements java.io.Serializable, WorkItem {
private int studentId;
private Date date;
private Date startTime;
private Date endtime;
private int room;
private Set tnStudentLocLog;
public Student() {
}
public Student(int studentId,Date date, int room, Date startTime, Date endtime) {
this.studentId = studentId;
this.date = date;
this.room = room;
this.startTime = startTime;
this.endtime = endtime;
}
}
UserController类:
@Controller
@RequestMapping(value="/students")
public class StudentController {
private static Logger logger = Logger.getLogger( StudentController.class);
private StudentManagerDelegate studentDelegate;
public StudentController() throws Exception
{
studentDelegate= new StudentManagerDelegate(ServiceType.LOCAL);
}
/********* GET ALL STUDENTS ************/
@RequestMapping(method=RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody SuccessResponse<List<Student>> getAllStudents() throws Exception {
Map<String,List<Student>> studentsMap = new HashMap<String,List<Student>>();
SuccessResponse<List<Student>> resp = new SuccessResponse<List<Student>>();
resp.list = studentDelegate.load();
return resp;
}
在这里,我得到了正确的结果。但是,&#34; studentId&#34;:2正在循环,如下所示
{"max":"30","list":[{"studentId":2,"date":1339327730000,"startTime":1339327806000,"endtime":1339329470000,"room":0,"tnStudentLocLog":
[{"id":"studentId":2,"inTime":1339327872000},"sequenceId":2,"outTime":1339327967000,"Student":{"studentId":2,"date":1339327730000,"startTime":1339327806000,"endtime":1339329470000,"tnStudentLocLog":[{"id":{"studentId":2,"room":10,"inTime":1339327872000},"sequenceId":2,"outTime":1339327967000,"Student":{"studentId":2,"date":1339327730000,"startTime":1339327806000,"endtime":1339329470000,"tnStudentLocLog":[{"id":.......
但是,当我输入&#34; / students / 4&#34;时,在URL中。它显示正确。 我不知道究竟发生了什么。我看到很多帖子,他们正在改变杰克逊核心的版本,注释。但是,这不符合我的情况。
提前感谢您的帮助。
答案 0 :(得分:3)
检查你是否有任何循环依赖,如果你有循环依赖,你可以忽略它@JsonIgnore Check here for cyclic dependency
答案 1 :(得分:2)
欢迎使用java。使用Java时您需要学习的第一件事就是如何设置和使用CLASSPATH。 “未找到类”错误表示您的一个或多个jar文件不在类路径中。对于.jar文件,Java不会隐式查找任何位置(甚至不是您的类所在的子目录)。你必须告诉它在哪里看。你如何设置CLASSPATH?这取决于您的平台(Windows,Linux,IIS,Apache,Tomcat,Bluejay,Eclipse等等)。了解这一点,您将避免许多人头痛。
答案 2 :(得分:2)
您缺少一个jar文件,其中包含所需的类com.fasterxml.jackson.databind.JsonMappingException
您可以download it from here并加入您的课程路径。