Java Gson显示异常,如“异常对象但为对象数组”
我有两个Expedia Hotel REST API的JSON响应示例Java Gson显示异常,如“异常对象但为对象数组”,java,arrays,json,spring,Java,Arrays,Json,Spring,我有两个Expedia Hotel REST API的JSON响应示例 Sample -1 { "Room": { "numberOfAdults": 2, "numberOfChildren": 1, "childAges": 1, "rateKey": "82b0b5af-9f9a-41d5-bf39-c262d66aed19" } } 样本-2 { "Room": [ {
Sample -1
{
"Room": {
"numberOfAdults": 2,
"numberOfChildren": 1,
"childAges": 1,
"rateKey": "82b0b5af-9f9a-41d5-bf39-c262d66aed19"
}
}
样本-2
{
"Room": [
{
"numberOfAdults": 2,
"numberOfChildren": 1,
"childAges": 1,
"rateKey": "82b0b5af-9f9a-41d5-bf39-c262d66aed19"
},
{
"numberOfAdults": 2,
"numberOfChildren": 1,
"childAges": 1,
"rateKey": "82b0b5af-9f9a-41d5-bf39-c262d66aed19"
}
]
}
所以样本-1是单房间对象,样本-2是对象数组,我想将这个JSON响应存储到我们的JavaPOJO中,这是
我试过的方法
POJO-1
import java.util.List;
public class RoomGroup{
private List<Room> Room;
public List<Room> getRoom(){
return this.Room;
}
public void setRoom(List<Room> room){
this.Room = Room;
}
}
所以这个pojo对于样本-1来说工作得很好,但是对于样本-2,Gson显示的异常类似于exception对象,但它是对象的数组
我正在使用SpringREST模板和Gson
RestTemplate restTemplate = new RestTemplate();
restTemplate.getForObject(sb.toString(),String.class,MediaType.APPLICATION_JSON);
Gson gson= new Gson();
InitialHotelRoomAvailbility availbilityInfo = fromJson(hotelAvailibilityInfoStringResponse, InitialHotelRoomAvailbility.class);
所以,请任何人告诉我为这些json响应创建JavaPOJO的错误所在
谢谢你的帮助
提前感谢。在JSON中,{}中包装的元素是JSON对象。[]中包装的元素是JSON数组 示例-1是一个JSON对象,它包含一个名为Room的JSON对象,其中包含一组JSON原语字符串和数字 示例2是一个JSON对象,它包含一个名为Room的JSON数组,其中包含一组JSON对象和一组JSON原语 您需要以不同的方式反序列化名为Room的JSON元素,sample-1作为Room,sample-2作为List。请参见
RestTemplate restTemplate = new RestTemplate();
restTemplate.getForObject(sb.toString(),String.class,MediaType.APPLICATION_JSON);
Gson gson= new Gson();
InitialHotelRoomAvailbility availbilityInfo = fromJson(hotelAvailibilityInfoStringResponse, InitialHotelRoomAvailbility.class);