复杂对象反序列化java
我正在尝试将XML字符串反序列化为包含列表的对象。反序列化部分成功。这些是我的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 =
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();