【问题标题】:REST, Format of XML representation of an ArrayListREST,ArrayList 的 XML 表示格式
【发布时间】:2017-12-01 11:26:43
【问题描述】:

我有一个带有 Jersey 2.5.1 和 JAX-RS 2.0 的 java 项目。并尝试使用 valueCoding 类的 ArrayList 获取以下 GET-Request 响应:

目标:

<valueCoding>
        <name value="Peter"/>
</valueCoding>

不幸的是,我得到了以下结果,打开和关闭标签没有“值”表示,它在我试图克隆的服务中使用:

结果:

<valueCoding>
        <name>Peter</name> 
</valueCoding> 

“valueCoding”只是一个简单的类,其中包含一个带有 Getter 和 Setter 的字符串“名称”。 我正在使用以下注释来操纵我的 XML 响应:

@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 

有没有一种简单的方法可以将较低的输出映射到顶部?

也许我使用了错误的 MediaType 或者使用 ArrayList 是不可能的?我也尝试了一个 HashSet,所以我猜它更多地是 restful-logic 的一部分?

谢谢!

【问题讨论】:

    标签: java xml rest arraylist jersey


    【解决方案1】:

    您可以将name 作为valueCoding 中的普通String,而不是将其封装在一个包装类中:

    @XmlRootElement(name = "name")
    public class Name {
    
        private String value;
    
        public void setValue(String value){
    
            this.value = value;
        }
    
        @XmlAttribute
        public String getValue(){
    
            return value;
    
        }
    
    }
    

    【讨论】:

      【解决方案2】:

      我认为jersey是使用MOXy的话,应该也可以使用XmlPath注解

      @XmlPath("valueCoding/name/@value")
      String name
      

      进一步read

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多