Let's take a look at the following simple test controller (Used with Spring 4.0.3):
@RestController
public class TestController
{
@RequestMapping("/getList")
public List<String> getList()
{
final List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
return list;
}
@RequestMapping("/getString")
public String getString()
{
return "Hello World";
}
}
In theory both controller methods should return valid JSON. Calling the first controller method indeed does return the following JSON array:
$ curl -i -H "Accept: application/json" http://localhost:8080/getList
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
["1","2"]
But the second controller method returns the string without quotes which is not a valid JSON string:
$ curl -i -H "Accept: application/json" http://localhost:8080/getString
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Hello World
Why is that so? Can it be configured? Is it a bug? Or a feature I don't understand?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…