У меня есть XML-ответ от Amazon PA API, который я пытаюсь проанализировать в Java.
Я использовал ту же логику, что и REST xml answer - Jaxb - API продукта Amazon
Но вывод всегда
amazonxml.AmazonFeedParser@53d8d10a
Я не знаю, в чем проблема или ошибка.
У меня есть два класса:
AmazonFeedParser.java и AmazonItemBuilder
package amazonxml;
@XmlRootElement(name="ItemSearchResponse")
public class AmazonFeedParser
{
private String name;
private String asin;
private String price;
public AmazonFeedParser()
{
}
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlElement(name="Title")
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlElement(name="ASIN")
public String getAsin()
{
return asin;
}
public void setAsin(String asin)
{
this.asin = asin;
}
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlElement(name="FormattedPrice")
public String getPrice()
{
return price;
}
public void setPrice(String price)
{
this.price = price;
}
}
Это второй класс, которым я пользуюсь
пакет amazonxml;
public class AmazonItemBuilder
{
public AmazonItemBuilder()
{
}
public List<AmazonFeedParser> build(File file)
{
try
{
JAXBContext context = JAXBContext.newInstance(AmazonFeedParser.class);
Unmarshaller unMarshaller = context.createUnmarshaller();
AmazonFeedParser newItem = (AmazonFeedParser) unMarshaller.unmarshal(file);
System.out.println(newItem.toString());
}
catch (JAXBException e)
{
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
AmazonItemBuilder amazonitembuilder = new AmazonItemBuilder();
amazonitembuilder.build(new File("C:\\Users\\Desktop\\amazontest.xml"));
}
}
Как видите, я пытаюсь получить доступ к XML-файлу и проанализировать его.
XML хорошо отформатирован и содержит элементы ASIN, FormattedPrice и Title.
<?xml version="1.0" ?>
<ItemSearchResponse
xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"></Header>
</HTTPHeaders>
<RequestId>41702764-c2dc-4f6c-af21-9664debf770b</RequestId>
<Arguments>
<Argument Name="AWSAccessKeyId" Value="MY ACCESS KEY"></Argument>
<Argument Name="AssociateTag" Value="MY TAG"></Argument>
<Argument Name="Keywords" Value="harry potter"></Argument>
<Argument Name="Operation" Value="ItemSearch"></Argument>
<Argument Name="ResponseGroup" Value="Images,ItemAttributes,Offers"></Argument>
<Argument Name="SearchIndex" Value="All"></Argument>
<Argument Name="Service" Value="AWSECommerceService"></Argument>
<Argument Name="Timestamp" Value="2019-03-14T10:19:38.000Z"></Argument>
<Argument Name="Signature" Value="G6JVokDVLOfOA8XDXbevKGHortF6yFzXlYcZK6lOobI="></Argument>
</Arguments>
<RequestProcessingTime>0.2966422940000000</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemSearchRequest>
<Keywords>harry potter</Keywords>
<ResponseGroup>Images</ResponseGroup>
<ResponseGroup>ItemAttributes</ResponseGroup>
<ResponseGroup>Offers</ResponseGroup>
<SearchIndex>All</SearchIndex>
</ItemSearchRequest>
</Request>
<TotalPages>1</TotalPages>
<Item>
<ASIN>B06Y18ZLYP</ASIN>
<ParentASIN>B07DG9V738</ParentASIN>
<FormattedPrice>20,00 EUR</FormattedPrice>
<Title> Test </Title>
</Item>
</Items>
</ItemSearchResponse>