2

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

  1. 是否有必要安排@JsonIgnoreProperties(ignoreUnknown=true)到所有其他班级?

  2. 如果我选择org.codehaus.jacksonJSON 处理程序,杰克逊是否有机会通过所有实体类尝试进行映射?我有一个

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

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

4

1 回答 1

2

如果您尝试使用 Jackson 将类映射为 JSON 对象,那么所有原语都可以。但是,杰克逊会尝试将您要映射的对象中的任何对象映射到 JSON 对象中。因此,作为您使用 JSON 映射的类的字段成员的任何类都需要能够映射到 JSON(以及它具有的任何对象字段),或者您需要忽略原始类中的那些对象字段.

此外,如果您有任何可能导致无限循环的递归映射(例如用户有一个团队,并且团队有一个用户列表)。Jackson 2 有一些很好的解决方案可以帮助解决这个问题。

于 2013-03-14T17:31:32.660 回答