2017-03-09 53 views
1

我正在接收來自服務器的XML響應。但是,根據我的要求,回覆正在改變。我想使用XStream解析器解析XML響應。從XML轉換到POJO時,我收到了「無法識別的字段」的例外情況。 我只想在轉換過程中使用一些字段,並忽略其他字段。例如: 我的POJO類是:使用XStream解析XML更改

@XStreamAlias("Book") 
    class Book{ 
     @XStreamAlias("author") 
     private String author; 

     @XStreamAlias("title") 
     private String title; 

     //getters and setters 
    } 

如果我的回答是:

<book> 
    <author>ABC</author> 
    <title>XYZ</title> 
</book> 

轉換工作正常。但如果我的迴應是:

<book> 
    <author>ABC</author> 
    <title>XYZ</title> 
    <pages>50</pages> 
</book> 

我在轉換期間收到異常。我怎樣才能避免這些不需要的字段的例外情況?有什麼辦法可以告訴XStream避免POJO中沒有提到的其他字段?

+0

嗨,如果答案滿足您的需求 - 那麼請標記爲解決方案。 – Mark

回答

1

設置的XStream忽略未知元素:xStream.ignoreUnknownElements()

@XStreamAlias("Book") 
class Book { 

    @XStreamAlias("author") 
    String author; 

    @XStreamAlias("title") 
    String title; 

    public static void main(String[] args) { 
     String input = "<Book>" 
       + "<author>ABC</author>" 
       + "<title>XYZ</title>" 
       + "<pages>50</pages>" 
       + "</Book>"; 

     XStream xStream = new XStream(); 
     xStream.ignoreUnknownElements(); 
     xStream.processAnnotations(Book.class); 

     Book book = (Book) xStream.fromXML(input); 
    } 
}