如何解决这个问题?
我尝试将@JsonIgnore
添加到getter,但结果相同。
POJO:
public class Category {
// Omitted details
@JsonIgnore
private List<Category> children;
}
来自build.gradle
:
'com.fasterxml.jackson.core:jackson-annotations:2.7.3'
春季版:
4.2.6.RELEASE
上下文:
<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
</bean>
答案 0 :(得分:1)
首先,添加jackson-databind
依赖项:
'com.fasterxml.jackson.core:jackson-databind:2.7.3'
您可以删除jackson-annotations
,因为它会被传递解决。然后,在类路径上使用approperaite Jackson jar,Spring MVC将自动为您配置所需的HttpMessageConverter
。因此,无需手动注册它们。因此,您可以安全地摆脱以下现象:
<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
</bean>
Spring通常使用定义明确且名称较长的抽象名称,因此您可以轻松找出每个名称的用途。显然,GsonHttpMessageConverter
是Gson的HttpMessageConverter
,而不是Jackson。结帐Spring documentation以获得更详细的讨论。
答案 1 :(得分:1)
请查看您的代码:
<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>
您需要Jackson
版本的转换器