是否有必要将@JsonIgnoreProperties放置在Spring JPA域中的所有非JSON类中?

时间:2013-03-14 17:23:19

标签: java json spring

例如我在当前的Spring应用程序中有20个实体类,只有一个需要映射到JSON对象,所以这里有两个问题:

  1. 是否有必要将@JsonIgnoreProperties(ignoreUnknown=true)放在所有其他课程上?

  2. 如果我为JSON处理程序选择org.codehaus.jackson,那么jackson是否有机会通过所有实体类来尝试进行映射?我有一个

    org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)
    
  3. 抛出

    异常,但日志中提到的集合对象已标记为@JsonIgnore,甚至整个类都标记为@JsonIgnoreProperties(ignoreUnknown=true)。那么有什么能让它像上面一样?

1 个答案:

答案 0 :(得分:2)

如果您尝试使用Jackson将类映射为JSON对象,则所有基元都可以。但是,jackson将尝试映射您正在映射到JSON对象的对象中的任何对象。因此,任何作为使用JSON映射的类的字段成员的类都需要能够映射到JSON(以及它具有的任何对象字段),否则您将需要忽略原始类中的那些对象字段

此外,如果您有任何递归映射(如用户有一个团队,并且团队有一个用户列表),则可能导致无限循环。杰克逊2有一些great solutions来帮助解决这个问题。