春天是否有全局配置可以为所有使用@ResponseBody注释的控制器禁用弹簧FAIL_ON_EMPTY_BEANS?
答案 0 :(得分:50)
如果您使用的是Spring Boot,则可以在application.properties文件中设置以下属性。
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
感谢@DKroot的宝贵评论。但我相信这应该是其他人的答案。
答案 1 :(得分:29)
您可以在配置configureMessageConverters
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
MappingJackson2HttpMessageConverter converter =
new MappingJackson2HttpMessageConverter(mapper);
return converter;
}
如果您想知道如何在您的应用程序中完全执行,请使用您的配置文件(xml或java配置)更新您的问题。
这是一个很好的article如何自定义邮件转换器。
编辑:如果您使用的是XML而不是Java配置,则可以使用自定义配置创建扩展MyJsonMapper
的自定义ObjectMapper
类,然后按如下方式使用< / p>
public class MyJsonMapper extends ObjectMapper {
public MyJsonMapper() {
this.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
}
}
在您的XML中:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="jacksonObjectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="jacksonObjectMapper" class="com.mycompany.example.MyJsonMapper" >
答案 2 :(得分:4)
在春季靴2.2.5中找不到<div id="backinblack">
<h1 data-text="test">test</h1>
</div>
我用这个
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
答案 3 :(得分:0)
如果您正在使用Spring Boot / JPA,还必须观察是否正在使用
getOne(用于jpa getReference),用于findOne / enetiyManager.find(Clazz,id)
GetOne依赖于ID持久性缓存的引用,该引用旨在检索其中仅包含ID的实体。它的用途主要是用于指示引用的存在,而无需检索整个实体。
find方法直接用于持久性管理器以获取持久性实例。
这第二个将相应地观察到您对@JsonIgnore的注释,并将为您提供预期的结果。
// On entity...
@JsonIgnore
@OneToMany(fetch = FetchType.LAZY, mappedBy = "foo")
private List<Foo> fooCollection;
// later on persistence impl
entityManager.find(Caso.class, id);
// or on serivce
casoRepository.findById(id); //...
答案 4 :(得分:0)
对我来说,问题在于从 org.json.JSONObject 对象到 org.json.simple.JSONObject 的类型转换,我通过解析 org.json.JSONObject ,然后将其强制转换为 org.json.simple.JSONObject
JSONParser parser = new JSONParser();
org.json.simple.JSONObject xmlNodeObj = (org.json.simple.JSONObject) parser.parse(XMLRESPONSE.getJSONObject("xmlNode").toString());