我将我的messageconverter配置为Jackson的
class Foo{int x; int y}
并在控制器中
@ResponseBody
public Foo method(){
return new Foo(3,4)
}
从该即时消息期望从服务器返回JSON字符串{x:‘3’,y:‘4’},而无需任何其他配置。但是收到对我的ajax请求的404错误响应
如果使用@ResponseBody注释该方法,则将返回类型写入响应HTTP正文。该返回值将使用HttpMessageConverters转换为声明的方法参数类型。
我错了吗 ?还是我自己使用序列化器将我的response对象转换为Json字符串,然后将该字符串作为响应返回(我可以正确地进行字符串响应),还是应该进行其他配置?像为Foo类添加注释
这是我的conf.xml
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
你需要以下内容:
<mvc:annotation-driven />
在spring.xmlorg.codehaus.jackson:jackson-mapper-asl
)放在classpath中。@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody Foo method(@Valid Request request, BindingResult result){
return new Foo(3,4)
}
这对我有用。
请注意,
1.@ResponseBody
适用于返回类型,而不是方法定义。
2. 你需要@RequestMapping
注释,以便Spring可以检测到它。
我在使用spring-jms模块转换来自RabbitMQ的消息时遇到了一些问题。以前,我使用Rest APIendpoint发送消息,该endpoint将消息发送到RabbitMQ队列,并使用@JMSListener方法处理它。 在内部,这种行为添加了一个字段来确定Java类型,由Spring库管理。但是,现在我想避免Rest API调用,因为它不是必需的,而且我可以直接将消息发送到RabbitM
下面有一个实体类,有两个字符串字段:name和description。description字段将包含一个原始JSON值,例如{“abc”:123} 如果存在@JSONRAWValue注释,建议如何将创建的JSON字符串编组回to Entity对象?我是不是遗漏了另一个注释? 谢谢
我正在尝试使用JOLT(使用NiFi JoltTransformJson处理器)将JSON转换为不同的格式。对于单个JSON记录,正在使用的JOLT在JOLT应用程序演示中运行良好,而如果我使用多个JSON记录执行,那么我在JOLT应用程序演示中没有得到预期的输出。有人能告诉我在JOLT规范中需要做哪些额外的更改来处理多个JSON记录吗? 示例输入json JOLT使用: 预期输出JSON:
使用MVC Java编程配置方式时,如果你想替换Spring MVC提供的默认转换器,完全定制自己的HttpMessageConverter,这可以通过覆写configureMessageConverters()方法来实现。如果你只是想定制一下,或者想在默认转换器之外再添加其他的转换器,那么可以通过覆写extendMessageConverters()方法来实现。 下面是一段例子,它使用定制的Ob
我使用的是Java8和(fasterjackson)Jackson 2.8.1。 我有一个xml,我需要用Java转换成json。xml结构如下所示: 我选择Jackson从xml反序列化到java,然后从java序列化到JSON。目标json需要解压缩“LineItem”和“LineItemType”以获得类似于以下内容的json: 如果省略@jsonunwrapped,则会出现值,但嵌套如下:
不推荐使用,是否有其他解决此问题的方法?