Diamo un'occhiata al seguente controller semplice test (usato con Primavera 4.0.3):stringa Semplice come JSON valore di ritorno nel controller di primavera resto
@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 teoria entrambi i metodi del controller dovrebbe tornare JSON valido. Chiamando il primo metodo di controllo effettivamente restituire il seguente array JSON:
$ curl -i -H "Accept: application/json" http://localhost:8080/getList
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
["1","2"]
Ma il secondo metodo di controllo restituisce la stringa senza virgolette, che non è una stringa JSON valida:
$ curl -i -H "Accept: application/json" http://localhost:8080/getString
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Hello World
Perché è così? Può essere configurato? E 'un errore? O una caratteristica che non capisco?
Cerca in 'StringHttpMessageConverter' quale è stato registrato prima del convertitore di jackson. –