前言:根据前面上一节的项目工程,我们继续实现如何使用JAVA对象转换成XML格式文件
一、 总体说明
XML和JSON 是最为常用的数据交换格式。本例子演示如何将JAVA对象,转成XML输出。
二、流程
1.在上文的工程例子中,创建一个包“cn.itrush.rest.bean”
2.在该包下创建一个JAVA类"User.java"
1 packagecn.itrush.rest.bean;2 importjavax.xml.bind.annotation.XmlRootElement;3
4 /**
5 * 回嘉6 *@authorhuiqinbo.cn7 * 2016-8-248 */
9 @XmlRootElement10 public classUser {11
12 privateString userId;13 privateString userName;14 privateString age;15
16 publicUser() {};17
18 publicUser(String userId, String userName, String age) {19 this.userId =userId;20 this.userName =userName;21 this.age =age;22 }23 publicString getUserId() {24 returnuserId;25 }26 public voidsetUserId(String userId) {27 this.userId =userId;28 }29 publicString getUserName() {30 returnuserName;31 }32 public voidsetUserName(String userName) {33 this.userName =userName;34 }35 publicString getAge() {36 returnage;37 }38 public voidsetAge(String age) {39 this.age =age;40 }41 }
注意:该类上面增加了一个注解“@XmlRootElement”,再将该类转化成XML时,说明这个是XML的根节点。
3.在“cn.itrush.rest.resources”中,增加资源“UserResource.java“,代码如下:
1 packagecn.itrush.rest.resources;2
3 importjava.util.ArrayList;4 importjava.util.HashMap;5 importjava.util.List;6 importjava.util.Map;7
8 importjavax.ws.rs.Path;9 importjavax.ws.rs.Produces;10 importjavax.ws.rs.PathParam;11 importjavax.ws.rs.core.MediaType;12 importjavax.ws.rs.DELETE;13 importjavax.ws.rs.GET;14 importjavax.ws.rs.POST;15 importjavax.ws.rs.PUT;16
17 importcn.itrush.rest.bean.User;18
19 /**
20 * 回嘉21 *@authorhuiqinbo.cn22 * 2016-8-2423 */
24
25 @Path("/users")26 public classUserResource {27 private static Map userMap = new HashMap();//�洢�û�
28
29 /**
30 * 返回多节点XML格式文件31 *@return
32 */
33 @GET34 @Produces(MediaType.APPLICATION_XML)35 public ListgetAllUsers(){36 List users = new ArrayList();37 User u1 = new User("001","HuiJia","26");38 User u2 = new User("002","Andy","23");39 User u3 = new User("003","BoWen","21");40
41 userMap.put(u1.getUserId(), u1);42 userMap.put(u2.getUserId(), u2);43 userMap.put(u3.getUserId(), u3);44
45 users.addAll( userMap.values() );46 returnusers;47 }48
49
50 /**
51 * 返回单节点XML格式文件52 *@return
53 */
54 @GET55 @Path("/getUserXml")56 @Produces(MediaType.APPLICATION_XML)57 publicUser getUserXml() {58 User user = newUser();59 user.setAge("21");60 user.setUserId("004");61 user.setUserName("回嘉");62 returnuser;63 }64
65 /**
66 * 返回单节点Json格式文件67 *@return
68 */
69 @GET70 @Path("/getUserJson")71 @Produces(MediaType.APPLICATION_JSON)72 publicUser getUserJson(){73 User user = newUser();74 user.setAge("30");75 user.setUserId("2");76 user.setUserName("回嘉");77 returnuser;78 }79
80
81 }
注意:MediaType.APPLICATION_XML 说明了是以XML形式输出
在浏览器输入http://localhost:8080/RestDemo/rest/users/getUserXml,输出单个对象
在浏览器输入http://localhost:8080/RestDemo/rest/users 输出对象的集合
参考文献:http://blog.csdn.net/kkkloveyou/article/details/21415735