JSON的死循环是一个让人头疼的问题,一般我们采用的是如下
config.setExcludes(new String[] { "hibernateLazyInitializer","password", "useremail", "questionnaireBasics" });的代码,这样就可以将password与usermail属性全部都除去了。
但是其实还是有问题,如果我们只是想除去password下的一个子属性而不是password属性全部呢?
<result type="json">
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</result>
这个代码就可以做到,但是这只能写在配置文件里,如果是用注解的方式,那就不行了
3、另外一个方式,我们可以如下:
qnaire = display.getQnaireByQid(questionnaireId);
ArrayList<QuestionBasicinfo> ques=new ArrayList(qnaire.getQuestionBasicinfos());
for(QuestionBasicinfo q:ques){
q.setAnswers(null);
}
即将不需要的属性域设为null,这样在转化为JSON时就不会有死循环了