Java 反序列化时发生xstream转换异常
在使用xstream进行反序列化时,我遇到以下异常: com.thoughtworks.xstream.converters.ConversionException:com.config.service类型的元素服务未定义为com.config.service类型中的字段 --调试信息-- 类:com.config.ServiceNServiceConfigurations 所需类型:com.config.Service 路径:/root/services/service 我的XML是:Java 反序列化时发生xstream转换异常,java,xstream,Java,Xstream,在使用xstream进行反序列化时,我遇到以下异常: com.thoughtworks.xstream.converters.ConversionException:com.config.service类型的元素服务未定义为com.config.service类型中的字段 --调试信息-- 类:com.config.ServiceNServiceConfigurations 所需类型:com.config.Service 路径:/root/services/service 我的XML是: <
<root>
<services>
<service>
<Id>10</Id>
<Name>CM</Name>
</service>
<service>
<Id>11</Id>
<Name>TM</Name>
</service>
</services>
<serviceConfigurations>
<serviceConfiguration>
<Key>XYZ</Key>
<Value>42</Value>
</serviceConfiguration>
<serviceConfiguration>
<Key>ABC</Key>
<Value>5</Value>
</serviceConfiguration>
</serviceConfigurations>
</root>
请告诉我哪里出了问题
谢谢,您应该删除addImplicitCollection配置,因为您的集合不是隐式的
XStream xstream = new XStream();
xstream.alias("root", com.config.ServiceNServiceConfigurations.class);
xstream.alias("service",com.config.Service.class);
xstream.alias("serviceConfiguration",com.config.ServiceConfiguration.class);
xstream.aliasField("Key", com.config.ServiceConfiguration.class, "key");
xstream.aliasField("Value", com.config.ServiceConfiguration.class, "value");
如果它们是隐式的,您的xml将如下所示:
<root>
<serviceConfiguration>
<Key>XYZ</Key>
<Value>42</Value>
</serviceConfiguration>
<serviceConfiguration>
<Key>ABC</Key>
<Value>5</Value>
</serviceConfiguration>
<service>
<Id>10</Id>
<Name>CM</Name>
</service>
<service>
<Id>11</Id>
<Name>TM</Name>
</service>
</root>
XStream xstream = new XStream();
xstream.alias("root", com.config.ServiceNServiceConfigurations.class);
xstream.alias("service",com.config.Service.class);
xstream.alias("serviceConfiguration",com.config.ServiceConfiguration.class);
xstream.aliasField("Key", com.config.ServiceConfiguration.class, "key");
xstream.aliasField("Value", com.config.ServiceConfiguration.class, "value");
<root>
<serviceConfiguration>
<Key>XYZ</Key>
<Value>42</Value>
</serviceConfiguration>
<serviceConfiguration>
<Key>ABC</Key>
<Value>5</Value>
</serviceConfiguration>
<service>
<Id>10</Id>
<Name>CM</Name>
</service>
<service>
<Id>11</Id>
<Name>TM</Name>
</service>
</root>