【问题标题】:web service returns parent tag multiple timesWeb 服务多次返回父标签
【发布时间】:2016-04-08 05:09:06
【问题描述】:

我有一个网络服务,它从数据库中获取详细信息并返回到调用系统。特定标签的输出可以有多个项目(父标签将有多个项目),但它一次又一次地返回相同的字段。可以请任何人帮忙。

电流输出

<emergencyEmails >raed@gmail.com</emergencyEmails >
<emergencyEmails >rad@gmail.com</emergencyEmails >
<emergencyEmails >read@gmail.com</emergencyEmails >

我希望它是这样的

<emergencyEmails >
<item>raed@gmail.com</item>
<item>rad@gmail.com</item>
<item>read@gmail.com</item>
</emergencyEmails >

电子邮件字段定义为字符串数组

package com.business.services;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;

@XmlType(propOrder={"companyId", "emergencyEmails", "language",     "normalEmails", "timezone"})
public class ProfileDetails
{

private String companyId = null;

private String[] emergencyEmails = null;

private String language = null;



public String getCompanyId()
{
return this.companyId;
}

public void setCompanyId(String companyId)
{
this.companyId = companyId;
}

public String[] getEmergencyEmails()
{
return this.emergencyEmails;
}

public void setEmergencyEmails(String[] emergencyEmails)
{
this.emergencyEmails = emergencyEmails;
}

public String getLanguage()
{
return this.language;
}

public void setLanguage(String language)
{
this.language = language;
}

}

【问题讨论】:

    标签: java xml web-services soap


    【解决方案1】:

    您可以使用以下注释将数组“包装”到一个元素中:

    @XmlElementWrapper(name="wrapper_tag_name")
    @XmlElement(name="element_tag_name")
    

    如您所见,@XmlElementWrapper 表示包装器元素名称,而 @XmlElement 指定每封电子邮件的实际标签名称。

    现在,如果您为电子邮件注释 getter 方法,例如

    @XmlElementWrapper(name="emergencyEmails")
    @XmlElement(name="item")
    public String[] getEmergencyEmails() {
        return emergencyEmails;
    }
    

    你应该没事的。 注释字段本身的其他选项,在这种情况下,类的 @XmlAccessorType(XmlAccessType.FIELD) 可能是一个解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 2012-04-05
      • 2010-12-24
      相关资源
      最近更新 更多