近日,同事遇到这样一个问题:使用angular,本着rest风格,设置了前台处理数据全部使用json解析器,后台代码如下:
@RestController
public class ConfigClientController {
//第一种 错误
@GetMapping("/hello")
public String hello(){
String hello="hello";
return hello;
}
//第二种 正确
@GetMapping("/hello2")
public String hello2() throws Exception{
ObjectMapper objectMapper=new ObjectMapper();
String hello2 = objectMapper.writeValueAsString("hello2");
return hello2;
}
}
使用第一种方法的时候,F12查看发现后台返回 hello ,但是前台报错Error:JSON.parse()...,使用第二种方法的时候,F12查看后台返回 "hello",前台正确。
原因:JSON.parse("a")不会出错,JSON.parse(a)会出错,
第二个方法,输出 "hello"的原因为MappingJackson2HttpMessageConverter会把String前后新增双引号
具体可参见提到的消息转换器处理:https://blog.csdn.net/userwyh/article/details/60480364