无法反序列化对象的实例进行START_ARRAY令牌

问题描述:

我想我的用户发送到服务器,并获得一个长的数字作为响应,但我得到了客户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。 –

我的客户JSON输出为用户包含一个用户,我改变这样的服务器注册的方法来解决我的问题的列表形式:

​​