问题描述如下:
A:客户端,通过spring 的 RestTemplate 访问B:server端的资源。
B:server端代码如下(基于springmvc):
@RequestMapping(value = "/server.json", method = RequestMethod.POST )
@ResponseBody
public String server() throws Exception {
return "{\"name\":\"小明\", \"number\":\"123456\"}";
}
A:客户端代码如下:
public void client() {
String result = restTemplate.postForObject("http://server_ip:port/server.json", null, String.class);
ResultVO resultVO = JSONObject.parseObject(result, ResultVO.class);
}
class ResultVO {
private String name;
private String number;
//get and set
}
当客户端使用如上代码时,通过restTemplate获得的result会有中文乱码,即“小明”为乱码,而且在json转bean的时候也会报错。
解决方案如下:
客户端代码改为:
public void client() {
ResultVO result = restTemplate.postForObject("http://server_ip:port/server.json", null, ResultVO.class);
}
并且在ResultVO 类中添加两个构造函数
class ResultVO {
private String name;
private String number;
public ResultVO() {
super();
}
public ResultVO(String result) {
ResultVO resultVO = JSONObject.parseObject(result, ResultVO.class);
this.name = resultVO.getName();
this.number = resultVO.getNumber();
}
//get and set
}
哦了,希望对遇到此类问题的道友有帮助。