Spring REST接口返回String未加引号序列化,是Bug还是特性?
Spring REST字符串返回值序列化异常问题
现有如下定义的接口端点:
@GetMapping("/foo") public String foo() { return "bar"; }
调用该接口后会直接返回字符串bar,该结果并不符合JSON格式规范,符合预期的有效JSON结果应为带双引号的"bar"。
目前存在两种不同的处理逻辑观点:
- Spring官方默认设计逻辑:若接口方法返回字符串类型,默认开发者已经手动完成了序列化操作,框架不会再对字符串做二次序列化
- 更符合通用预期的逻辑:框架应该默认对所有类型的返回值统一执行自动序列化,额外提供特殊配置项来标记返回内容已为序列化结果,和其他对象类型的返回处理规则保持一致
目前尚未确认该问题是否由自身配置遗漏导致,因此还未在Spring官方issue tracker提交相关工单。
内容的提问来源于stack exchange,提问作者Georg Unterberger
相关产品推荐
相关产品推荐

