2014-09-30 81 views
1

我已經使用傑克遜之前將JSON轉換爲POJO,並且工作正常,現在我正在嘗試使用XML並且我遇到困難。Java傑克遜 - XML到POJO

我有以下代碼:

ObjectMapper xmlMapper = new XmlMapper(); 
GoodreadsResponse response = xmlMapper.readValue("<GoodreadsResponse><Request><authentication>true</authentication></Request><book><id>6465707</id></book></GoodreadsResponse>", GoodreadsResponse.class); 
System.out.println(response); 

GoodreadsResponse.java

@JacksonXmlRootElement(localName = "GoodreadsResponse") 
public class GoodreadsResponse { 
    @JacksonXmlProperty(localName = "book") 
    private Book book; 

    public Book getBook() { return book; } 
} 

Book.java

public class Book { 
    @JacksonXmlProperty(localName = "id") 
    private String id; 

    public String getId() { return id; } 
} 

我得到以下錯誤:

Exception in thread "Thread-3" java.lang.NoClassDefFoundError: org/codehaus/stax2/ri/Stax2ReaderAdapter 
at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream.<init>(XmlTokenStream.java:1 
at com.fasterxml.jackson.dataformat.xml.deser.XmlTokenStream.<init>(XmlTokenStream.java:108) 
at com.fasterxml.jackson.dataformat.xml.deser.FromXmlParser.<init>(FromXmlParser.java:171) 
at com.fasterxml.jackson.dataformat.xml.XmlFactory._createParser(XmlFactory.java:546) 
at com.fasterxml.jackson.dataformat.xml.XmlFactory.createParser(XmlFactory.java:418) 
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2146) 

無論我做什麼,我都無法讓它工作,我不確定我的班級是否正確。

有人可以看看,看看他們是否可以指出我在正確的方向。

感謝

+0

定義不工作,你有什麼輸出?它拋出一個異常? – proulxs 2014-09-30 15:00:43

+0

對不起,錯誤補充。 – 2014-09-30 16:02:21

+2

因此,它無法在您的類路徑中找到org/codehaus/stax2/ri/Stax2ReaderAdapter類。 – proulxs 2014-09-30 16:04:23

回答

0

我加strax2的API和傑克遜模塊JAXB的註釋庫,它的工作現在:)

+0

你的意思是'stax2-api'? – Jonik 2015-02-13 17:21:52