我用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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)