java–Spring REST | MappingJacksonHttpMessageConverter生成无效的JSON

java–Spring REST | MappingJacksonHttpMessageConverter生成无效的JSON,第1张

概述我用Spring实现了一个RESTful Web服务.该服务基于Accept标头以XML或JSON响应.这是context.xml映射: <bean id='xstreamMarshaller' class='org.springframework.oxm.xstream.XStreamMarshaller'/> <bean id='

我用Spring实现了一个RESTful Web服务.该服务基于Accept标头以XML或JSON响应.这是context.xml映射:

  

这是我的控制器方法:

@Controller@RequestMapPing(value = "/entityService")class RestfulEntityService {  @Resource  private EntityService entityService;  @ResponseBody  @RequestMapPing(value = "/getAllEntitIEs",method = RequestMethod.GET)  public List

XML响应是有效的,但是,当客户端将Accept标头设置为application / Json时,响应是无效的JsON.

这是JsON响应示例:

[{"ID":3,"attributes":[{"ID":18,"attributeValue":null,"attributename":"mobile","attributeType":"varchar(40)","entity":{"ID":3,"attributes": ..... repeats for a while and then stops..
最佳答案您使用XStream序列化XML响应,使用Jackson JSON序列化JsON响应.查看您发布的JsON输出,似乎有一个循环引用问题.我猜测实体有一个属性列表,每个属性都指向它们各自的实体. XStream通过使用XPath透明地处理循环引用,这允许在反序列化返回到对象时保留引用.从v1.6开始,Jackson能够处理循环引用,但是你需要通过@JsonManagedReference和@JsonBackReference来注释你的序列化实体来帮助它.我认为杰克逊在允许JsON序列化中的返回引用方面是独一无二的.

请参阅handling bi-directional references using declarative methods的杰克逊文档以供参考. 总结

以上是内存溢出为你收集整理的java – Spring REST | MappingJacksonHttpMessageConverter生成无效的JSON全部内容,希望文章能够帮你解决java – Spring REST | MappingJacksonHttpMessageConverter生成无效的JSON所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)