Java JAXB解组列表
我试图将这个XML解组为Java对象,一个包含电子邮件地址列表的客户对象Java JAXB解组列表,java,xml,jaxb,Java,Xml,Jaxb,我试图将这个XML解组为Java对象,一个包含电子邮件地址列表的客户对象 <customer> <emailAddresses>janed@example.com</emailAddresses> <emailAddresses>jdoe@example.org</emailAddresses> </customer> 单元测试失败 @Test public void shouldDeserialiseCusomerX
<customer>
<emailAddresses>janed@example.com</emailAddresses>
<emailAddresses>jdoe@example.org</emailAddresses>
</customer>
单元测试失败
@Test
public void shouldDeserialiseCusomerXMLToObject() throws JAXBException
{
String xml = "<customer>"
+ " <emailAddresses>janed@example.com</emailAddresses>"
+ " <emailAddresses>jdoe@example.org</emailAddresses>"
+ "</customer>";
JAXBContext jaxbContext = JAXBContext.newInstance( Customer.class );
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
StringReader reader = new StringReader( xml );
Customer msg = ( Customer ) jaxbUnmarshaller.unmarshal( reader );
// This passes, I have 2 emailAddresses
assertEquals( 2, msg.getEmailAddresses().size() );
// This fails, I have a null pointer instead of the email address
assertEquals( "janed@example.com", msg.getEmailAddresses().get( 0 ).getEmailAddresses() );
}
@测试
public void应反序列化SecureSomerXmlToObject()引发JAXBEException
{
字符串xml=“”
+ " janed@example.com"
+ " jdoe@example.org"
+ "";
JAXBContext JAXBContext=JAXBContext.newInstance(Customer.class);
解组器jaxbUnmarshaller=jaxbContext.createUnmarshaller();
StringReader=新的StringReader(xml);
Customer msg=(Customer)jaxbunmarshall.unmarshal(reader);
//通过后,我有2个电子邮件地址
assertEquals(2,msg.getEmailAddresses().size());
//这失败了,我有一个空指针,而不是电子邮件地址
资产质量(”janed@example.com,msg.getEmailAddresses().get(0.getEmailAddresses());
}
您的电子邮件地址太多了
如果您应该将电子邮件地址列表更改为字符串列表,如
@XmlRootElement( name = "customer" )
public class Customer
{
private List<String> emailAddresses;
public Customer()
{
emailAddresses = new ArrayList<String>();
}
public List<String> getEmailAddresses()
{
return emailAddresses;
}
public void setEmailAddresses( List<String> emailAddresses )
{
this.emailAddresses = emailAddresses;
}
}
@XmlRootElement(name=“customer”)
公共类客户
{
私人名单电邮地址;
公众客户()
{
emailAddresses=新的ArrayList();
}
公共列表getEmailAddresses()
{
返回电子邮件地址;
}
public void setEmailAddresses(列出emailAddresses)
{
this.emailAddresses=电子邮件地址;
}
}
您的电子邮件地址太多了
如果您应该将电子邮件地址列表更改为字符串列表,如
@XmlRootElement( name = "customer" )
public class Customer
{
private List<String> emailAddresses;
public Customer()
{
emailAddresses = new ArrayList<String>();
}
public List<String> getEmailAddresses()
{
return emailAddresses;
}
public void setEmailAddresses( List<String> emailAddresses )
{
this.emailAddresses = emailAddresses;
}
}
@XmlRootElement(name=“customer”)
公共类客户
{
私人名单电邮地址;
公众客户()
{
emailAddresses=新的ArrayList();
}
公共列表getEmailAddresses()
{
返回电子邮件地址;
}
public void setEmailAddresses(列出emailAddresses)
{
this.emailAddresses=电子邮件地址;
}
}
您的电子邮件地址太多了
如果您应该将电子邮件地址列表更改为字符串列表,如
@XmlRootElement( name = "customer" )
public class Customer
{
private List<String> emailAddresses;
public Customer()
{
emailAddresses = new ArrayList<String>();
}
public List<String> getEmailAddresses()
{
return emailAddresses;
}
public void setEmailAddresses( List<String> emailAddresses )
{
this.emailAddresses = emailAddresses;
}
}
@XmlRootElement(name=“customer”)
公共类客户
{
私人名单电邮地址;
公众客户()
{
emailAddresses=新的ArrayList();
}
公共列表getEmailAddresses()
{
返回电子邮件地址;
}
public void setEmailAddresses(列出emailAddresses)
{
this.emailAddresses=电子邮件地址;
}
}
您的电子邮件地址太多了
如果您应该将电子邮件地址列表更改为字符串列表,如
@XmlRootElement( name = "customer" )
public class Customer
{
private List<String> emailAddresses;
public Customer()
{
emailAddresses = new ArrayList<String>();
}
public List<String> getEmailAddresses()
{
return emailAddresses;
}
public void setEmailAddresses( List<String> emailAddresses )
{
this.emailAddresses = emailAddresses;
}
}
@XmlRootElement(name=“customer”)
公共类客户
{
私人名单电邮地址;
公众客户()
{
emailAddresses=新的ArrayList();
}
公共列表getEmailAddresses()
{
返回电子邮件地址;
}
public void setEmailAddresses(列出emailAddresses)
{
this.emailAddresses=电子邮件地址;
}
}
默认情况下,EmailAddress
的EmailAddress
字段被视为子元素,希望XML为:
<customer>
<emailAddresses>
<emailAddresses>janed@example.com</emailAddresses>
</emailAddresses>
<emailAddresses>
<emailAddresses>jdoe@example.org</emailAddresses>
</emailAddresses>
</customer>
@XmlValue
注释与结合使用时特别有用,以支持如下XML:
<Person sex="male" age="25">John Doe</Person>
默认情况下,
EmailAddress
的EmailAddress
字段被视为一个子元素,希望XML为:
<customer>
<emailAddresses>
<emailAddresses>janed@example.com</emailAddresses>
</emailAddresses>
<emailAddresses>
<emailAddresses>jdoe@example.org</emailAddresses>
</emailAddresses>
</customer>
@XmlValue
注释与结合使用时特别有用,以支持如下XML:
<Person sex="male" age="25">John Doe</Person>
默认情况下,
EmailAddress
的EmailAddress
字段被视为一个子元素,希望XML为:
<customer>
<emailAddresses>
<emailAddresses>janed@example.com</emailAddresses>
</emailAddresses>
<emailAddresses>
<emailAddresses>jdoe@example.org</emailAddresses>
</emailAddresses>
</customer>
@XmlValue
注释与结合使用时特别有用,以支持如下XML:
<Person sex="male" age="25">John Doe</Person>
默认情况下,
EmailAddress
的EmailAddress
字段被视为一个子元素,希望XML为:
<customer>
<emailAddresses>
<emailAddresses>janed@example.com</emailAddresses>
</emailAddresses>
<emailAddresses>
<emailAddresses>jdoe@example.org</emailAddresses>
</emailAddresses>
</customer>
@XmlValue
注释与结合使用时特别有用,以支持如下XML:
<Person sex="male" age="25">John Doe</Person>
我做不到,因为我还需要向emailAddresses添加一些XML属性(代码中省略),我做不到,因为我还需要向emailAddresses添加一些XML属性(代码中省略),我做不到,因为我还需要向emailAddresses添加一些XML属性(代码中省略),我做不到,由于我还需要向emailAddresses添加一些XML属性(代码中省略),我已尝试按照下面的说明添加多个注释,但没有成功。我尝试按照下面的说明添加多个注释,但没有成功。我尝试按照下面的说明添加多个注释,但没有成功。我尝试按照下面的说明添加多个注释,但是运气不好。谢谢你的详细解释,非常感谢!现在工作很好。非常感谢您的详细解释,非常感谢!现在工作很好。非常感谢您的详细解释,非常感谢!现在工作很好。非常感谢您的详细解释,非常感谢!现在工作得很好。