Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复杂对象反序列化java_Java_Xml_Deserialization - Fatal编程技术网

复杂对象反序列化java

复杂对象反序列化java,java,xml,deserialization,Java,Xml,Deserialization,我正在尝试将XML字符串反序列化为包含列表的对象。反序列化部分成功。这些是我的java类 public class Vector { public double x; public double y; public double z; } public class TP{ public Date Time; public double thrust; public double isp; public double duration =

我正在尝试将XML字符串反序列化为包含列表的对象。反序列化部分成功。这些是我的java类

public class Vector {
    public double x;
    public double y;
    public double z;
}

public class TP{
    public Date Time;
    public double thrust;
    public double isp;
    public double duration = .5;
    public Vector direction;
}

public class SOP{
    public Date Time;
    public Vector Position;
    public Vector Velocity;
    public Vector Acceleration;
    public double mass;
}

@XmlRootElement(name="OPS")
@XmlAccessorType(XmlAccessType.FIELD)
public class OPS{

    public OPS() {
        TPS= new ArrayList<TP>();
    }
    
    public SOP initialState;
    public List<TP> TPS;
    public Date Time;
    
}
公共类向量{
公共双x;
公共双y;
公共双z;
}
公共类TP{
公开日期和时间;
公众的双重推力;
公共双isp;
公共双持续时间=.5;
公共媒介导向;
}
公共类SOP{
公开日期和时间;
公共媒介立场;
公共矢量速度;
公共矢量加速;
公众双弥撒;
}
@XmlRootElement(name=“OPS”)
@XmlAccessorType(XmlAccessType.FIELD)
公营部门{
公共行动(){
TPS=新的ArrayList();
}
公共国家;
公共名单租置计划;
公开日期和时间;
}
这是XML

<?xml version="1.0" encoding="utf-8"?>
<OPS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <initialState>
    <Time>2021-03-18T09:55:07.1259143-04:00</Time>
    <Position>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </Position>
    <Velocity>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </Velocity>
    <Acceleration>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </Acceleration>
    <mass>0</mass>
  </initialState>
  <TPS>
    <TP>
      <Time>2021-03-18T09:55:07.1119203-04:00</Time>
      <thrust>1</thrust>
      <isp>1</isp>
      <duration>0.5</duration>
      <direction>
        <x>0</x>
        <y>0</y>
        <z>0</z>
      </direction>
    </TP>
    <TP>
      <Time>2021-03-18T09:55:07.1259143-04:00</Time>
      <thrust>1</thrust>
      <isp>1</isp>
      <duration>0.5</duration>
      <direction>
        <x>0</x>
        <y>0</y>
        <z>0</z>
      </direction>
    </TP>
    <TP>
      <Time>2021-03-18T09:55:07.1259143-04:00</Time>
      <thrust>1</thrust>
      <isp>1</isp>
      <duration>0.5</duration>
      <direction>
        <x>0</x>
        <y>0</y>
        <z>0</z>
      </direction>
    </TP>
  </TPS>
  <Time>2021-03-18T09:55:07.1259143-04:00</Time>
</OPS

2021-03-18T09:55:07.1259143-04:00
0
0
0
0
0
0
0
0
0
0
2021-03-18T09:55:07.1119203-04:00
1.
1.
0.5
0
0
0
2021-03-18T09:55:07.1259143-04:00
1.
1.
0.5
0
0
0
2021-03-18T09:55:07.1259143-04:00
1.
1.
0.5
0
0
0
2021-03-18T09:55:07.1259143-04:00

在TPS属性上添加@xmlementwrapper@xmlement注释:

    @XmlRootElement(name="OPS")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class OPS {

        public OPS() {
            TPS= new ArrayList<TP>();
        }

        public SOP initialState;
        @XmlElementWrapper(name="TPS")
        @XmlElement(name="TP")
        public List<TP> TPS;
        public Date Time;
@XmlRootElement(name=“OPS”)
@XmlAccessorType(XmlAccessType.FIELD)
公营部门{
公共行动(){
TPS=新的ArrayList();
}
公共国家;
@XmlElementWrapper(name=“TPS”)
@xmlement(name=“TP”)
公共名单租置计划;
公开日期和时间;

更多详细信息请参见此处:

您的反序列化逻辑?是原始反序列化?还是使用Jackson?原始反序列化。您可以共享StruthParams类的实现吗?应该是:TPS=new ArrayList();