簡體   English   中英

xml通過JAXB轉換為java對象

[英]xml to java object via JAXB

我有以下帶有測量部分的xml,我想將其轉換為java對象。 但是我在本節中設計POJO對象存在問題。 你能幫我嗎? 謝謝

<root_element>
   <element>some_value</element>
   <element>some_value</element>     // SOME OTHERS ELEMENT'S
   <element>some_value</element>
   <measurement>                     // BEGINING OF THE SECTION WHERE I HAVE A PROBLEM
       <component>SO2</component>
       <averaged_time>
            <averaged_hours>1</averaged_hours>
            <value>9.054</value>
       </averaged_time>
       <component>NO2</component>
       <averaged_time>
            <averaged_hours>1</averaged_hours>
            <value>14.155</value>
       </averaged_time>
   </measurement>                    // END OF THE SECTION WHERE I HAVE A PROBLEM
   <element>some_value</element>
</root_element>

我有這樣的事情(我沒有在這里寫其他參數,那些參數沒有問題)。 JAXB在Measurement中只返回了最后一個“ component”和“ averaged_time”元素。 我知道ArrayList <Measurement>是不好的方法。

@XmlRootElement
public class root_element {

      private ArrayList<Measurement> measurements;

      public ArrayList<Measurement> getMeasurements() {
            return measurements;
      }

      @XmlElement (name = "measurement")
      public void setMeasurement(ArrayList<Measurement> measurements) {
            this.measurements = measurements;
      }
}

測量對象

public class Measurement {

    private String component;
    private AveragedTime averagedTime;  

    public String getComponent() {
        return component;
    }

    @XmlElement (name = "component")
    public void setComponent(String component) {
        this.component = component;
    }

    public AveragedTime getAveragedTime() {
        return averagedTime;
    }

    @XmlElement (name = "averaged_time")
    public void setAveragedTime(AveragedTime averagedTime) {
        this.averagedTime = averagedTime;
    }
}

平均時間對象

public class AveragedTime {

        private int averaged_hours;
        private double value;

        public int getAveraged_hours() {
            return averaged_hours;
        }

        @XmlElement (name = "averaged_hours")
        public void setAveraged_hours(int averaged_hours) {
            this.averaged_hours = averaged_hours;
        }

        public double getValue() {
            return value;
        }

        @XmlElement (name = "value")
        public void setValue(double value) {
            this.value = value;
        }

我看到的XML問題應該是

<root_element>
   <element>some_value</element>
   <element>some_value</element>     // SOME OTHERS ELEMENT'S
   <element>some_value</element>
   <measurement>                     // BEGINING OF THE SECTION WHERE I HAVE A PROBLEM
       <component>SO2</component>
       <averaged_time>
            <averaged_hours>1</averaged_hours>
            <value>9.054</value>
       </averaged_time>
   </measurement>
   <measurement>   
       <component>NO2</component>
       <averaged_time>
            <averaged_hours>1</averaged_hours>
            <value>14.155</value>
       </averaged_time>
   </measurement>                    // END OF THE SECTION WHERE I HAVE A PROBLEM
   <element>some_value</element>
</root_element>

休息所有您的POJO似乎很好,即按照上面建議的xml同步。

否則,如果您需要繼續使用現有的XML,請按如下所示更改類:

@XmlRootElement
public class root_element {

      private Measurement measurements;

     //getter-setters
}

測量等級

public class Measurement {

    private List<String> component;
    private List<AveragedTime> averagedTime;  

    //getter-setters

 }

休息都好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM