2016-03-28 130 views
0

我想我的用戶發送到服務器,並獲得一個長的數字作爲響應,但我得到了客戶400錯誤,並得到這個exeption在服務器端:無法反序列化對象的實例進行START_ARRAY令牌

nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of mashfood.model.User out of START_ARRAY token 

我的客戶的suser模型爲服務器用戶模式完全一樣:

的suser(或用戶):

class User{ 
public long id; 

public String username; 

public String password; 

public String firstName; 

public String lastName; 

public String gender; 

public String nationalNumber; 

public String phoneNumber; 

public String address; 

public String email; 

public boolean isLoggedIn; 

public String imageUrl; 

public int areaNumber; 

} 

客戶端連接到服務器是這樣的: ** tClass是響應 **則params的類型[0]是用戶,我要發送到服務器 ** URL +條件方法的網址手柄獲取用戶

protected ResponseHandler doInBackground(Object... params) { 
    try { 
     serverResponse=new ServerResponse(); 
     result = restTemplate.postForObject(URL + conditions, params,tClass); 
     serverResponse.singleResult=result; 
     serverResponse.isReady=true; 
     responseHandler.onServerRespond(serverResponse); 
    }catch (Exception e){ 
     serverResponse.isReady=false; 
     serverResponse.message=e.getMessage(); 
     e.printStackTrace(); 
    } 

    return responseHandler; 
} 

和服務器端代碼:

@RequestMapping(value = "/register",method = RequestMethod.POST) 
@ResponseBody 
public Long registerNewUser(@RequestBody User user){ 
    if(user!=null){ 
     try { 
      System.out.println("REGISTER "+ user==null); 
      SessionFactory sessionFactory=HibenateConnection.connectingHibernate(); 
      Session session=sessionFactory.openSession(); 
      session.beginTransaction(); 
      session.save(user); 
      session.getTransaction().commit(); 
      User user1=getUser(user.username); 
      session.close(); 
      return user1.id; 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 
    return -1l; 
} 

和我的輸出JSON是:

[{ 
"address": "", 
"areaNumber": 0, 
"email": "email", 
"firstName": "name", 
"gender": "male", 
"id": -1, 
"imageUrl": "img", 
"isLoggedIn": false, 
"lastName": "lastn", 
"nationalNumber": "898898", 
"password": "pass", 
"phoneNumber": "936", 
"username": "mehdi" 
}] 

哪裏是我的問題嗎?

+0

你能請張貼JSON字符串? – Bhokal

+0

@Bhokal是的,我加入了我的問題 –

+0

爲什麼這個投票結果作爲題外話?它包含一個MCVE。 –

回答

0

我的客戶JSON輸出爲用戶包含一個用戶,我改變這樣的服務器註冊的方法來解決我的問題的列表形式:

​​
相關問題