例如我在当前的Spring应用程序中有20个实体类,只有一个需要映射到JSON对象,所以这里有两个问题:
是否有必要将@JsonIgnoreProperties(ignoreUnknown=true)
放在所有其他课程上?
如果我为JSON处理程序选择org.codehaus.jackson
,那么jackson是否有机会通过所有实体类来尝试进行映射?我有一个
org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)
异常,但日志中提到的集合对象已标记为@JsonIgnore
,甚至整个类都标记为@JsonIgnoreProperties(ignoreUnknown=true)
。那么有什么能让它像上面一样?
答案 0 :(得分:2)
如果您尝试使用Jackson将类映射为JSON对象,则所有基元都可以。但是,jackson将尝试映射您正在映射到JSON对象的对象中的任何对象。因此,任何作为使用JSON映射的类的字段成员的类都需要能够映射到JSON(以及它具有的任何对象字段),否则您将需要忽略原始类中的那些对象字段
此外,如果您有任何递归映射(如用户有一个团队,并且团队有一个用户列表),则可能导致无限循环。杰克逊2有一些great solutions来帮助解决这个问题。