【发布时间】:2016-10-31 05:35:55
【问题描述】:
如 RFC 7159 中所提到的,字符串等原始类型本身就是有效的 json 消息。但是字符串必须用双引号括起来。
所以,字符串:
测试
在 json 中是:
“测试”
如果我发送正确引用的 POST 正文
“测试”
到下面的代码
@RestController
@RequestMapping("test")
public class TestController{
@RequestMapping(method=RequestMethod.POST)
public ResponseEntity<?> userLogout(@RequestBody final String input) {
System.out.println(input);
return new ResponseEntity<>("OK", HttpStatus.OK);
}
}
输入变量的值为
“测试”
而不是
测试
这将是正确的值。
请求的输出也是
好的
而不是
“好的”
这将是正确的输出。
任何想法如何强制 Spring 正确处理字符串?
请求确实有正确的标头:
内容类型:应用程序/json; charset=UTF-8
在 RequestMapping 注解中添加produce="application/json" 并没有帮助。
(附带说明:如果您使用改造或 Gson 进行通信,它们确实可以正确处理字符串。)
【问题讨论】:
-
这有帮助吗? stackoverflow.com/questions/18385361/…也可以尝试调整消费媒体类型
-
@Bernhard 不,这没有帮助,在那个问题中没有解决方案
-
@krzyk 是的,问题的一半似乎是重复的。