в учебных целях я пытаюсь сопоставить XML-файл с pojo.Мой XML выглядит следующим образом:
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
</breakfast_menu>
Класс сущности Breakfes
@JacksonXmlRootElement(localName = "breakfast_menu")
public class BreakfestFood {
private List<Food> food;
public BreakfestFood() {}
public List<Food> getFood() {
return food;
}
public void setFood(List<Food> food) {
this.food = food;
}
}
Класс сущности пищи
@JacksonXmlRootElement(localName = "food")
public class Food {
@JacksonXmlProperty(localName = "name")
private String name;
@JacksonXmlProperty
private double price;
@JacksonXmlProperty
private String description;
@JacksonXmlProperty
private int calories;
И основная функция:
public static void main(String[] args) {
File file = new File("X:\\food.xml");
XmlMapper xmlMapper = new XmlMapper();
try {
String xml = inputStreamToString(new FileInputStream(file));
BreakfestFood value = xmlMapper.readValue(xml, BreakfestFood.class);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Когда я запускаю этот код, я получаю стек следующим образом: конструктор аргумента строки / метод фабрики для десериализации из значения строки («бельгийские вафли»).Таким образом, кажется, он не может отобразить название стоимости еды.Кто-нибудь имеет представление, что не так?