2014-09-30 91 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