我有一个使用 Spring (v4.0.5) 的 http 服务。它的 http 端点是使用 Spring Web MVC 配置的。响应是从模式生成的带有 JAXB2 注释的类。响应被包装,JAXBElement
因为生成的 JAXB 类不@XmlRootElement
包含注释(并且无法修改模式以对此进行修改)。我不得不为获得 XML 编组工作而奋斗。无论如何,它正在工作。
现在我正在设置 JSON 编组。我遇到的是获取具有JAXBElement
“信封”特征的 JSON 文档。
{
"declaredType": "io.github.gv0tch0.sotaro.SayWhat",
"globalScope": true,
"name": "{urn:io:github:gv0tch0:sotaro}say",
"nil": false,
"scope": "javax.xml.bind.JAXBElement$GlobalScope",
"typeSubstituted": false,
"value": {
"what": "what",
"when": "2014-06-09T15:56:46Z"
}
}
我想要编组的只是value
-object:
{
"what": "what",
"when": "2014-06-09T15:56:46Z"
}
这是我的 JSON 编组配置(弹簧上下文配置的一部分):
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="jacksonMapper" />
<property name="supportedMediaTypes" value="application/json" />
</bean>
<bean id="jacksonMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd'T'HH:mm:ss'Z'" />
<property name="timeZone">
<bean class="java.util.TimeZone" factory-method="getTimeZone">
<constructor-arg type="java.lang.String" value="UTC" />
</bean>
</property>
</bean>
</property>
</bean>
我希望这可以通过配置ObjectMapper
. 我想或者推出我自己的序列化程序可能会起作用。想法?建议?