gpt4 book ai didi

java - 无法从 START_ARRAY token 中反序列化对象的实例

转载 作者:行者123 更新时间:2023-11-30 10:57:02 28 4
gpt4 key购买 nike

我有两个对象,一个是 Dashboard,第二个是 Room 我有一个 json,看起来像这样

  {
"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;
}

我隐藏了 Stackoverflow 的所有构造函数、setter 和 getter,但它在我的代码中我想使用此代码从 URL 使用 ObjectMapper 将 Json 解析为对象

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

请帮我解决这个问题

最佳答案

从您发布的 JSON 字符串来看,似乎有一个 Room 对象列表。但是您使用的是单个对象。

在您的 DashBoard 类中,尝试更改:

private Room hotel_properties;

到:

private List<Room> hotel_properties;

关于java - 无法从 START_ARRAY token 中反序列化对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795219/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com