Spring MVCとそのjsonサポートに1つ問題があります。私はいくつかのデータを取得するために1つのajax呼び出しを行い、私はその値をjson形式で取得する必要があります。また、REST API
のために使用されているので、エンティティでJABX
注釈も使用しています。Spring MVCとJacksonのマッピングがjsonのルート要素を返さない
public class JaxbJacksonObjectMapper extends ObjectMapper {
public JaxbJacksonObjectMapper() {
final AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
this.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);
super.getDeserializationConfig().withAnnotationIntrospector(introspector);
this.configure(org.codehaus.jackson.map.SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
super.getSerializationConfig().withAnnotationIntrospector(introspector);
}
}
:
this.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);
は、だから私はCodehausの1を拡張し、このようになります1 objectMapperを作成:
私はJackson
に含まれているルート値を取得することを読んだことが、私はこの方法を使用する必要があります
このマッパーを使用するには、私は次の行を設定しました:
<beans:bean id="customObjectMapper" class="com.test.package.config.JaxbJacksonObjectMapper" />
<beans:bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<beans:property name="objectMapper" ref="customObjectMapper" />
</beans:bean>
<beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:ref bean="jsonMessageConverter"/>
</beans:list>
</beans:property>
</beans:bean>
そして、私のエンティティは次のようになります。
@XmlRootElement(name = "collection")
public class Issuers {
private List<Issuer> issuers;
}
問題はSpring 3.1
がブラウザに発行者にJSONオブジェクトを返すとき、それはcollection
ルート要素が含まれていないということです。
どのようにすればこの問題を解決できますか?
ありがとうございます!
http://stackoverflow.com/q/2435527/923560は、同様の課題を議論 – Abdull
この問題を解決できました。あなたがしたことをお知らせください。 – Marco