【问题标题】:Rest - order GET response xml休息 - 订购 GET 响应 xml
【发布时间】:2013-01-17 13:03:47
【问题描述】:

我从 rest GET 方法得到这个简单的 xml。 Restful 服务是用 java 编写的。

   <gear>
      <price>355.95929799818884</price>
      <idGear>1</idGear>
      <year>1985</year>
      <name>GPS</name>
  </gear>

我的问题是如何改变xml的顺序?我想将 idGear 作为第一个节点。这是基本的还是比我想象的更复杂? 感谢您的帮助?

更新:

@XmlRootElement
@Entity(name="gear")
public class Gear{

    @Id
    @GeneratedValue
    int idGear;
    private String name;
    private int year;
    private double price;
      //getters, setters

【问题讨论】:

  • 这个是怎么生成的,为什么要改顺序?
  • 你能显示正在序列化的类来生成这个 XML
  • 使用浮点类型来表示单价并不是一个好主意。
  • 它是一个接口,订单应该没有任何意义......
  • 我刚刚添加了序列化类

标签: java xml rest get jaxb


【解决方案1】:

您可以使用@XmlType 注释并设置propOrder 来控制元素编组为XML 的顺序。

@XmlRootElement
@XmlType(propOrder={"idGear", "name", "year", "price"})
@Entity(name="gear")
public class Gear{

    @Id
    @GeneratedValue
    int idGear;
    private String name;
    private int year;
    private double price;

}

更多信息

【讨论】:

    【解决方案2】:

    @XmlType 注解有一个属性 propOrder 可以使用。这是来自文档:

    注解元素 propOrder() 可用于自定义内容模型为 xs:all 或 xs:sequence。它用于指定 xs:sequence 中 XML 元素的顺序。

    Javadoc for XmlType

    【讨论】:

      【解决方案3】:

      它与 Rest 无关。只能在@XmlType注解中使用proporder来实现JAXB转换。

      @XmlType(propOrder={"idGear", "name", "year", "price"})
      

      【讨论】:

        猜你喜欢
        • 2011-09-21
        • 2011-04-29
        • 2018-01-19
        • 2018-05-31
        • 2021-09-22
        • 2020-05-05
        • 2011-02-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多