前言:根据前面上一节的项目工程,我们继续实现如何使用JAVA对象转换成XML格式文件
一、 总体说明
XML和JSON 是最为常用的数据交换格式。本例子演示如何将JAVA对象,转成XML输出。
二、流程
1.在上文的工程例子中,创建一个包“cn.itrush.rest.bean”
2.在该包下创建一个JAVA类"User.java"
1 package cn.itrush.rest.bean; 2 import javax.xml.bind.annotation.XmlRootElement; 3 4 /** 5 * 回嘉 6 * @author huiqinbo.cn 7 * 2016-8-24 8 */ 9 @XmlRootElement 10 public class User { 11 12 private String userId; 13 private String userName; 14 private String age; 15 16 public User() {}; 17 18 public User(String userId, String userName, String age) { 19 this.userId = userId; 20 this.userName = userName; 21 this.age = age; 22 } 23 public String getUserId() { 24 return userId; 25 } 26 public void setUserId(String userId) { 27 this.userId = userId; 28 } 29 public String getUserName() { 30 return userName; 31 } 32 public void setUserName(String userName) { 33 this.userName = userName; 34 } 35 public String getAge() { 36 return age; 37 } 38 public void setAge(String age) { 39 this.age = age; 40 } 41 }
注意:该类上面增加了一个注解“@XmlRootElement”,再将该类转化成XML时,说明这个是XML的根节点。
3.在“cn.itrush.rest.resources”中,增加资源“UserResource.java“,代码如下:
1 package cn.itrush.rest.resources; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7 8 import javax.ws.rs.Path; 9 import javax.ws.rs.Produces; 10 import javax.ws.rs.PathParam; 11 import javax.ws.rs.core.MediaType; 12 import javax.ws.rs.DELETE; 13 import javax.ws.rs.GET; 14 import javax.ws.rs.POST; 15 import javax.ws.rs.PUT; 16 17 import cn.itrush.rest.bean.User; 18 19 /** 20 * 回嘉 21 * @author huiqinbo.cn 22 * 2016-8-24 23 */ 24 25 @Path("/users") 26 public class UserResource { 27 private static Map<String,User> userMap = new HashMap<String,User>();//�洢�û� 28 29 /** 30 * 返回多节点XML格式文件 31 * @return 32 */ 33 @GET 34 @Produces(MediaType.APPLICATION_XML) 35 public List<User> getAllUsers(){ 36 List<User> users = new ArrayList<User>(); 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 return users; 47 } 48 49 50 /** 51 * 返回单节点XML格式文件 52 * @return 53 */ 54 @GET 55 @Path("/getUserXml") 56 @Produces(MediaType.APPLICATION_XML) 57 public User getUserXml() { 58 User user = new User(); 59 user.setAge("21"); 60 user.setUserId("004"); 61 user.setUserName("回嘉"); 62 return user; 63 } 64 65 /** 66 * 返回单节点Json格式文件 67 * @return 68 */ 69 @GET 70 @Path("/getUserJson") 71 @Produces(MediaType.APPLICATION_JSON) 72 public User getUserJson(){ 73 User user = new User(); 74 user.setAge("30"); 75 user.setUserId("2"); 76 user.setUserName("回嘉"); 77 return user; 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
我是一位基督徒,感谢耶和华的爱,耶稣的恩惠,圣灵的感动常与我同在!