Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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/15.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 使用xstream填充列表值_Java_Xml_Xml Parsing_Xml Serialization_Xstream - Fatal编程技术网

Java 使用xstream填充列表值

Java 使用xstream填充列表值,java,xml,xml-parsing,xml-serialization,xstream,Java,Xml,Xml Parsing,Xml Serialization,Xstream,我正在使用Xstream阅读以下格式的xml <Objects> <Object Type="System.Management.Automation.Internal.Host.InternalHost"> <Property Name="Name" Type="System.String">ConsoleHost</Property> <Property Name="Version" Type="Sy

我正在使用
Xstream
阅读以下格式的xml

 <Objects>  
  <Object Type="System.Management.Automation.Internal.Host.InternalHost">   
    <Property Name="Name" Type="System.String">ConsoleHost</Property>   
    <Property Name="Version" Type="System.Version">2.0</Property>   
    <Property Name="InstanceId" Type="System.Guid">7e2156</Property>
  </Object> 
</Objects> 

控制台主机
2
7e2156
基本上,在对象标记下可以有n个对象类型,每个对象类型可以有n个属性标记。因此,我通过Java类和代码对其进行建模,如下所示

 @XStreamAlias("Objects")
class ParentResponseObject {
    @XStreamImplicit
    List <ResponseObject>responseObjects = new ArrayList<ResponseObject>(); 
    public String toString () {
        return responseObjects.get(0).toString();       
    }   
}
@XStreamAlias("Object")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = { "value" })
class ResponseObject {
    @XStreamAsAttribute
       String Type;
       String value;
       @XStreamImplicit
       List <Properties> properties = new ArrayList<Properties>();  
      public String toString () {
        return Type+" value is "+"List is "+properties+ value;      
    }   
}
@XStreamAlias("Property")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = { "value" })
class Properties {
    @XStreamAsAttribute
    String Name;
    @XStreamAsAttribute
    String Type;
    String value;
    Properties (String name, String type,String value) {
            this.Name = name;
            this.Type = type;
            this.value =  value;
        }   
}
@XStreamAlias(“对象”)
类ParentResponseObject{
@XStreamImplicit
List responseObjects=new ArrayList();
公共字符串toString(){
返回responseObjects.get(0.toString();
}   
}
@XStreamAlias(“对象”)
@XStreamConverter(value=ToAttributedValueConverter.class,strings={“value”})
类响应对象{
@XStreamAsAttribute
字符串类型;
字符串值;
@XStreamImplicit
列表属性=新的ArrayList();
公共字符串toString(){
返回类型+”值为“+”列表为“+属性+值;
}   
}
@XStreamAlias(“财产”)
@XStreamConverter(value=ToAttributedValueConverter.class,strings={“value”})
类属性{
@XStreamAsAttribute
字符串名;
@XStreamAsAttribute
字符串类型;
字符串值;
属性(字符串名称、字符串类型、字符串值){
this.Name=Name;
this.Type=Type;
这个值=值;
}   
}

使用此代码,我能够填充
ParentResponseObject
类中的
responseObjects
列表。但是,
ResponseObject
中的属性列表始终为
null
,并且不会被填充,即使我在这两种情况下使用相同的技术。我调试了很多,但什么也找不到。我们请求您的帮助和指导。

添加对它将起作用的隐含内容的引用

  @XStreamImplicit(itemFieldName="Object")
  List<ResponseObject> responseObjects = new ArrayList<ResponseObject>();

  @XStreamImplicit(itemFieldName="Property")
  List<Properties> properties = new ArrayList<Properties>();
@XStreamImplicit(itemFieldName=“Object”)
List responseObjects=new ArrayList();
@XStreamImplicit(itemFieldName=“Property”)
列表属性=新的ArrayList();