无法使用休息模板显示响应正文

时间:2014-09-23 07:20:51

标签: json spring rest spring-mvc response

看到我正在使用包含pojo的Register类。

public class Register {
private String userFirstName,userLastName;
//getters and setters for this

}

这是我的服务

public String Register(Register reg) {
String url = "some URL" ;

        String firstname = reg.getUserFirstName();
        String lastname = reg.getUserLastName();
        JSONObject jsondata = new JSONObject();
        jsondata.put("userFirstName", firstname);
        jsondata.put("userLastName", lastname);
HttpEntity<?> requestEntity = new Connection().getConnection(jsondata
                .toString());
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().add(
                new StringHttpMessageConverter());

        ResponseEntity<Register> respone;
        try {
        respone = restTemplate.exchange(url, HttpMethod.POST, requestEntity,
                Register.class);

         System.out.println("response"+respone.getBody());

        } catch (Exception e) {
            System.out.println("++++++++++++ failed +++++++++++++"+e.getMessage());

        }

在这里,我正在以

的形式得到答复
com.somname.model.Register@67636097

但是我希望以json形式显示响应。为什么我会这样..?我怎样才能获得响应体...?

2 个答案:

答案 0 :(得分:0)

我相信一切都按预期工作。我对其他模板不是很熟悉,但我认为它应该可以帮助你“隐藏”REST内部(例如JSON编码/解码)。

如果您检查respone.getBody()的Java类型,您将获得Register,因此println将生成标准Java toString()输出,如您现在所见。因此,如果您想使用它,请检查字段,但因此,您可以获得与普通Java对象相同的结果。

如果您出于任何目的想要查看JSON(不知道原因),您可以使用例如“手动”将Java对象转换为JSON。杰克逊图书馆......详情请见here

答案 1 :(得分:0)

如果这是userFirstName的getter方法的名称,请尝试这样的事情,对userLastName执行相同的操作

System.out.println("response"+respone.getBody().getUserFirstName());