restlet中如何返回json和xml类型数据_restlet 返回附件

restlet中如何返回json和xml类型数据

所需jar包:org.restlet.jar、org.restlet.ext.json.jar、org.restlet.ext.xml.jar

1.返回json类型数据:
(1).编写学生实体类(Student.java):
   
  1. public class Student {
  2. private String name;
  3. private String sex;
  4. private int age;
  5. public Student(String name,String sex,int age){
  6. this.name = name;
  7. this.sex = sex;
  8. this.age = age;
  9. }
  10. public String getName() {
  11. return name;
  12. }
  13. public void setName(String name) {
  14. this.name = name;
  15. }
  16. public String getSex() {
  17. return sex;
  18. }
  19. public void setSex(String sex) {
  20. this.sex = sex;
  21. }
  22. public int getAge() {
  23. return age;
  24. }
  25. public void setAge(int age) {
  26. this.age = age;
  27. }
  28. }

(2).编写资源处理类(GetDataResource):

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import org.json.JSONArray;
  4. import org.restlet.ext.json.JsonRepresentation;
  5. import org.restlet.representation.Representation;
  6. import org.restlet.resource.Get;
  7. import org.restlet.resource.ServerResource;
  8. //定义一个资源
  9. public class GetDataResource extends ServerResource {
  10. /**返回JSON类型数据*/
  11. @Get
  12. private Representation getJsonData() {
  13. List<Student> list = new ArrayList<Student>();
  14. Student stu1 = new Student("曹操","男",50);
  15. Student stu2 = new Student("小乔","女",23);
  16. Student stu3 = new Student("周瑜","男",32);
  17. list.add(stu1);
  18. list.add(stu2);
  19. list.add(stu3);
  20. //把list集合转换为json对象
  21. JSONArray arr = new JSONArray(list);
  22. return new JsonRepresentation(arr);
  23. }
  24. }


(3).通过浏览器访问该资源,结果如下:
[{"sex":"男","age":50,"name":"曹操"},
{"sex":"女","age":23,"name":"小乔"},
{"sex":"男","age":32,"name":"周瑜"}]

2.返回xml类型数据:
(1).编写学生实体类(Student.java):
   方法同上。

(2).编写资源处理类(GetDataResource):

  1. import java.io.IOException;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.restlet.data.MediaType;
  5. import org.restlet.ext.xml.DomRepresentation;
  6. import org.restlet.resource.Get;
  7. import org.restlet.resource.ResourceException;
  8. import org.restlet.resource.ServerResource;
  9. import org.w3c.dom.Document;
  10. import org.w3c.dom.Node;
  11. //定义一个资源
  12. public class GetDataResource extends ServerResource {
  13. /**返回XML类型数据*/
  14. @Get
  15. public DomRepresentation getXMLData() throws ResourceException, IOException{
  16. //创建请求参数
  17. DomRepresentation representation = new DomRepresentation(MediaType.APPLICATION_XML);
  18. Document doc = representation.getDocument() ;
  19. //创建节点
  20. Node studentsNode = doc.createElement("Students");
  21. List<Student> list = new ArrayList<Student>();
  22. Student stu1 = new Student("曹操","男",50);
  23. Student stu2 = new Student("小乔","女",23);
  24. Student stu3 = new Student("周瑜","男",32);
  25. list.add(stu1);
  26. list.add(stu2);
  27. list.add(stu3);
  28. //设置值
  29. for(Student stu : list){
  30. Node studentNode = doc.createElement("student");
  31. Node nameNode = doc.createElement("name");
  32. Node sexNode = doc.createElement("sex");
  33. Node ageNode = doc.createElement("age");
  34. nameNode.setTextContent(stu.getName() + "");
  35. sexNode.setTextContent(stu.getSex() + "");
  36. ageNode.setTextContent(stu.getAge() + "");
  37. studentNode.appendChild(nameNode);
  38. studentNode.appendChild(sexNode);
  39. studentNode.appendChild(ageNode);
  40. studentsNode.appendChild(studentNode);
  41. }
  42. doc.appendChild(studentsNode);
  43. return representation ;
  44. }
  45. }

(3).通过浏览器访问该资源,结果如下:

 上面就是关于restlet返回json和xml类型数据的两个小列子,使用起来很简单。