用@XmlType的propOrder属性 来指定序列化的顺序。

默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使用 @XmlType的 propOrder属性
来指定序列化的顺序。

第一步:定义java类时,使用 @XmlType(propOrder = { "id", "name", "age","book"})指定输出顺序。

Java代码   收藏代码
  1. package step2;  
  2. import java.util.Set;  
  3.   
  4. import javax.xml.bind.annotation.XmlElement;  
  5. import javax.xml.bind.annotation.XmlElementWrapper;  
  6. import javax.xml.bind.annotation.XmlRootElement;  
  7. import javax.xml.bind.annotation.XmlType;  
  8.   
  9. @XmlRootElement  
  10. @XmlType(propOrder = { "id""name""age","book"})  
  11. public class Customer {  
  12.     String name;  
  13.     int age;  
  14.     int id;  
  15.     Set<Book> book;  
  16.     @XmlElement(name="name")  
  17.     public String getName() {  
  18.         return name;  
  19.     }  
  20.   
  21.     public void setName(String name) {  
  22.         this.name = name;  
  23.     }  
  24.   
  25.     @XmlElement(name="age")  
  26.     public int getAge() {  
  27.         return age;  
  28.     }  
  29.   
  30.     public void setAge(int age) {  
  31.         this.age = age;  
  32.     }  
  33.     @XmlElement(name="id")  
  34.     public int getId() {  
  35.         return id;  
  36.     }  
  37.   
  38.     public void setId(int id) {  
  39.         this.id = id;  
  40.     }  
  41.   
  42.       
  43.     @Override  
  44.     public String toString() {  
  45.         return "Customer [id=" + id + ",name=" + name + ",age=" + age + ",book=" + book + "]";  
  46.     }  
  47.     @XmlElementWrapper(name="books")  
  48.     @XmlElement(name="book")  
  49.     public Set<Book> getBook() {  
  50.         return book;  
  51.     }  
  52.   
  53.     public void setBook(Set<Book> book) {  
  54.         this.book = book;  
  55.     }  
  56.   
  57.       
  58. }  
 
输出的xml:
Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
  2. <customer>  
  3.     <id>100</id>  
  4.     <name>suo</name>  
  5.     <age>29</age>  
  6.     <books>  
  7.         <book>  
  8.             <id>1</id>  
  9.             <name>哈里波特</name>  
  10.             <price>100.0</price>  
  11.         </book>  
  12.         <book>  
  13.             <id>2</id>  
  14.             <name>苹果</name>  
  15.             <price>50.0</price>  
  16.         </book>  
  17.     </books>  
  18. </customer>  
 

注:
1.对于@XmlElementWrapper标注的属性,不能出现在@XmlType的propOrder列表中。
2.对于所有@XmlElement标注过的属性,必须出现在@XmlType的propOrder列表中。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值