2016-11-21 36 views
0

このXMLをJacksonを使用してPOJOに解析する際に問題があります。私はXMLをPOJOSにデシリアライズするクラスを作る上でのすべての前の説明を読んだが、Nullポインタか要素警告のENDを得ている。私は非常に混乱しており、どんな助けも大歓迎です。Jacksonを使用して繰り返しXMLタグを使用してXMLをPOJOに解析する方法は?

入力XMLは、私が使用しているコードがある

    <row>    
        <entry align="right" valign="top">20</entry> 
        <entry align="right" valign="top">1A</entry> 
        <entry valign="top">SData</entry> 
        <entry align="center" valign="top">2</entry> 
        <entry valign="top">binary</entry> 
        <entry valign="top">Java enterprise</entry> 
       </row> 

です。

static void testSmallXml(){ 
    String big = null; 
    try 
    { 
     big = readFileToString("other/testXML/NewFile.xml"); 
    } catch (IOException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    XmlMapper xmlMapper = new XmlMapper(); 


    String small = big.substring(big.lastIndexOf("<row>"), big.lastIndexOf("</row>")+8); 

     try 
     { 
      rows in = xmlMapper.readValue(small, rows.class); 
      System.out.println(in.entries[0].value); 
     } catch (IOException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }   

     System.out.println(small); 

} 

、私のPOJOクラスは、私が
行にNULLポインタ例外を取得しておく

@JacksonXmlRootElement(localName = "row") 
@JsonIgnoreProperties(ignoreUnknown = true) 
public static class rows{ 
    @JacksonXmlProperty(localName = "entry") 
    public entry[] entries; 
} 

@JacksonXmlRootElement(localName = "entry") 
@JsonIgnoreProperties(ignoreUnknown = true) 
public static class entry{ 

    @JacksonXmlProperty(isAttribute = true) 
    private String align; 

    @JacksonXmlProperty(isAttribute = true) 
    private String valign; 

    @JacksonXmlText 
    public String value; 

} 

ある[ "エントリ"] - >オブジェクトは、[] [2])

答えて

0

これを試してみてください:

@JacksonXmlRootElement(localName = "row") 
public static class rows { 
    @JacksonXmlElementWrapper(useWrapping=false) 
    @JacksonXmlProperty(localName = "entry") 
    public entry[] entries; 
} 

public static class entry { 
    @JacksonXmlProperty(isAttribute = true) 
    private String align; 

    @JacksonXmlProperty(isAttribute = true) 
    private String valign; 

    @JacksonXmlText 
    public String value; 
} 
+0

こんにちはTeppic、ありがとう。それは仕事を終えた。私はあなたが次のステップのためにこれをすることについて何か考えがあったかどうか疑問に思っていましたか? – Cmac199

+0

サイドノート:次回に質問に「java」タグを追加すると、より迅速にヘルプが表示されます。 – teppic

関連する問題