2015-09-26 3 views
2

У меня есть два объект один Dashboard и второе это номер у меня есть JSON, который выглядеть следующим образомНе удается десериализация экземпляра объекта из START_ARRAY лексема

{ 
"hotel_id":"1", 
"hotel_room":"200", 
"hotel_properties":[{ 
     "id":"1", 
     "room_type":"Single", 
     "rack_rate":"2000", 
     "publish_rate":"1800", 
     "discount":"10", 
     "availiable":"40", 
     "total":"50" 
     }, 
     { 
     "id":"2", 
     "room_type":"Double", 
     "rack_rate":"4000", 
     "publish_rate":"3600", 
     "discount":"10", 
     "availiable":"45", 
     "total":"50" 
     } 
     ] 
    } 

и объект

public class DashBoard { 
    private int hotel_id; 
    private int hotel_room; 
    @JsonProperty("hotel_properties") 
    private Room hotel_properties; 
    } 

Существует еще один объект номер, который выглядеть следующим образом

public class Room { 
    private Long id; 
    private String room_type; 
    private String rack_rate; 
    private String publish_rate; 
    private String discount; 
    private String availiable; 
    private String total; 
} 

Я являюсь Скрыть все конструктора, и присваиватель Fo г Stackoverflow но это в моем коде я хочу разобрать JSON в объект с помощью ObjectMapper из URL с помощью этого кода

JsonReader jsonReader = new JsonReader(); 
     ObjectMapper mapper = new ObjectMapper(); 
     try { 
      JSONObject json = jsonReader.readJsonFromUrl("http://localhost/quinchy/json/dashboard.json"); 
      DashBoard dsh = mapper.readValue(json.toString(), DashBoard.class); 
      System.out.println(json.toString()); 
     } catch (IOException | JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

, но я получаю эту ошибку

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of Object out of START_ARRAY token 

пожалуйста, помогите мне с этой

+0

использования 'Список ' вместо '' Room' в классе DashBoard' – Vaseph

ответ

1

Из JSON Строка, которую вы отправили, похоже, что есть список Room объектов. Но вы использовали один объект.

В вашем DashBoard классе, попробуйте изменить:

private Room hotel_properties; 

к:

private List<Room> hotel_properties; 
+0

Благодаря @amila своей работы для меня –