使用Xstream进行反序列化

使用Xstream进行反序列化,xstream,Xstream,下面是我的java类 public class CRM { private String phone[]; private String email; public String[] getPhone() { return phone; } public void setPhone(String[] phone) { this.phone = phone; } publi

下面是我的java类

public class CRM
{

    private String phone[];
    private String email;
    public String[] getPhone()
    {
            return phone;
    }

    public void setPhone(String[] phone)
    {
            this.phone = phone;
    }

    public String getEmail()
    {
            return email;
    }

    public void setEmail(String email)
    {
            this.email = email;
    }
}

下面是我的XML

<Crm>
    <Phone>123456789</Phone>
    <email>a@a.com</email>
</Crm>
我是错过了什么还是做错了什么

我正在使用xstream-1.4.2.jar和Java1.6


我将一直尝试将XML转换为java对象。

没有看到用于实例化XStream的代码,我无法100%确定,但问题似乎是因为在XML中,您提供的字符串中XStream需要一个字符串数组

一个简单的修复方法是将xml文件更改为以下内容:

<Crm>
    <phone>
        <string>123456789</string>
    </phone>
    <email>a@a.com</email>
 </Crm>
这样就可以将以下XML解析为CRM实例:

<Crm>
    <phone>12345</phone>
    <phone>123456</phone>
    <phone>12345678</phone>
    <email>a@a.com</email>
</Crm>

12345
123456
12345678
a@a.com

如果看不到用于实例化XStream的代码,我无法100%确定,但问题似乎是因为在XML中,您提供了一个字符串,XStream需要一个字符串数组

一个简单的修复方法是将xml文件更改为以下内容:

<Crm>
    <phone>
        <string>123456789</string>
    </phone>
    <email>a@a.com</email>
 </Crm>
这样就可以将以下XML解析为CRM实例:

<Crm>
    <phone>12345</phone>
    <phone>123456</phone>
    <phone>12345678</phone>
    <email>a@a.com</email>
</Crm>

12345
123456
12345678
a@a.com