2014-09-23 48 views
0

請參閱我擁有包含pojo的註冊類。無法顯示使用休息模板的回覆正文

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()); 

     } 

在這裏輸入反應即時得到在

[email protected] 

形式的響應,但我想顯示JSON form.why響應我我越來越喜歡這個..?我如何獲得響應身體..?

回答

0

我相信一切都按預期工作。我對休息模板不是很熟悉,但我認爲它應該可以幫助您「隱藏」REST內部組件(例如JSON編碼/解碼)。

如果檢查respone.getBody()的Java類型,你會得到Register,從而println會產生標準的Java toString()輸出,你可以看到現在。所以如果你想使用它,請檢查字段,但正因爲如此,所以你可以像普通的Java對象一樣獲得結果。

如果出於任何目的,您希望看到JSON(不知道爲什麼),則可以使用例如「手動」方式將Java對象轉換爲JSON。傑克遜庫...看到here的細節

+0

但你能告訴我爲什麼即時得到的是響應類型,我應該使用string.class嗎? – user3189357 2014-09-23 08:23:06

+0

你這樣編程(見'Register.class'參數)。但嚴重的是,這是rest模板從JSON表示中抽象出你的目的。這來自javadoc:'它處理HTTP連接,讓應用程序代碼提供URL(帶有可能的模板變量)並提取結果.'如果你想獲得JSON,你可以直接使用任何HTTP客戶端。你能告訴我爲什麼你想看到JSON?或者你想達到什麼目的? – sodik 2014-09-23 08:31:38

+0

@ sodik實際上在響應即時獲取userid我想在其他code.thats使用它爲什麼我想在json form.im中的響應保存該用戶ID作爲pojo在註冊類 – user3189357 2014-09-23 08:49:22

0

嘗試是這樣的,如果這是你的USERFIRSTNAME getter方法的名稱,你做同樣的USERLASTNAME

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