[英]Cannot parse XML response with JAXB - IndexOutOfBoundsException
[英]Cannot parse a xml response using JAXB - NullPointerException is thrown
我正在嘗試解析Web服務的響應,但是代碼拋出“ NullPointerException”。 我將XmlRootElement批注添加到Restaurant類,但是引發了相同的異常。
響應類似於以下
<RestaurantList>
<Restaurant id="100001">
<Url>URL is here</Url>
<Name>Agaton</Name>
<Description>
<Text> Text is here</Text>
</Description>
<Image>
<Code>111772</Code>
<Name>MAINCOURSE</Name>
<Description><Text>Main course Agaton</Text></Description>
<Url>http://img.static-
bookatable.com/17862a2d1fa13f5fb083a4d78d6f7e42.jpg</Url>
</Image>
<Image>
<Code>111773</Code>
<Name>MAINCOURSE</Name>
<Url>http://img.static-
bookatable.com/8fae3334490c276322ac1a597fc2d456.jpg</Url>
</Image>
<PrimaryCuisine>Italian</PrimaryCuisine>
<Address>
<Line1>Västerlånggatan 72</Line1>
<Line2/>
<Line3/>
<PostalCode>111 29</PostalCode>
<City>Stockholm</City>
<Country>SWE</Country>
</Address>
<Geo>
<Latitude>59.32299</Latitude>
<Longtitude>18.07205</Longtitude>
</Geo>
<Region></Region>
<Detail>
<Homepage>http://www.restaurangagaton.se</Homepage>
<EMail>kontakt@restaurangagaton.se</EMail>
<PhoneNumber type="Main">+46 8207299</PhoneNumber>
<PhoneNumber type="Fax">+46 8207107</PhoneNumber>
<Styles>
<Style>
<Text>Neighbourhood Restaurant</Text>
</Style>
</Styles>
<OpenHours>Sunday-Thursday 11.00-22.00 Friday-Saturday 11.00
23.00</OpenHours>
<AveragePriceThreeCourseMeal
currency="SEK">550</AveragePriceThreeCourseMeal>
<AveragePriceMainCourse currency="SEK">223</AveragePriceMainCourse>
</Detail>
</Restaurant>
<Restaurant id="100005"><Url>
碼
RestTemplate restTemplate = new RestTemplate();
RestaurantList response = restTemplate.getForObject(url, RestaurantList.class);
System.err.println("size>>" + response.getRestaurants().size()); //Exception
我有所有的getter和setter
餐廳列表
@XmlRootElement(name = "RestaurantList")
@XmlAccessorType(XmlAccessType.FIELD)
public class RestaurantList {
@XmlElement(name = "restaurant")
private List<Restaurant> restaurants;
餐廳
@XmlAccessorType(XmlAccessType.FIELD)
public class Restaurant{
@XmlAttribute
private long id;
@XmlElement
private String url;
@XmlElement
private String name;
@XmlElement
private Description description;
@XmlElement
private List<Image> image;
@XmlElement
private String primaryCuisine;
@XmlElement(name = "address")
private Address address;
@XmlElement
private Geo geo;
@XmlElement
private Region region;
@XmlElement
private Detail detail;
描述
@XmlAccessorType(XmlAccessType.FIELD)
public class Description {
@XmlElement(name="text")
private String text;
圖片
@XmlAccessorType(XmlAccessType.FIELD)
public class Image {
@XmlElement
private long code;
@XmlElement
private String name;
@XmlElement
private Description description;
@XmlElement
private String url;
地址
@XmlAccessorType(XmlAccessType.FIELD)
public class Address {
@XmlElement
private String line1;
@XmlElement
private String line2;
@XmlElement
private String line3;
@XmlElement
private String postalCode;
@XmlElement
private String city;
@XmlElement
private String country;
地緣
@XmlAccessorType(XmlAccessType.FIELD)
public class Geo {
@XmlElement
private double latitude;
@XmlElement
private double longtitude;
區域
@XmlAccessorType(XmlAccessType.FIELD)
public class Region {
@XmlElement
private long code;
詳情
@XmlAccessorType(XmlAccessType.FIELD)
public class Detail {
@XmlElement
private String homepage;
@XmlElement
private String email;
@XmlElement
private String phoneNumber1;
@XmlElement
private String phoneNumber2;
@XmlElement
private Styles style;
@XmlElement
private String openHours;
@XmlElement
private double averagePriceThreeCourseMeal;
@XmlElement
private double averagePriceMainCourseMeal;
嘗試在RestaurantList
類中使用@XmlElement(name = "Restaurant")
更改@XmlElement(name = "restaurant")
。 它應該工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.