restlet中如何返回json和xml类型数据
所需jar包:org.restlet.jar、org.restlet.ext.json.jar、org.restlet.ext.xml.jar
1.返回json类型数据:
(1).编写学生实体类(Student.java):
- public class Student {
-
- private String name;
- private String sex;
- private int age;
-
- public Student(String name,String sex,int age){
- this.name = name;
- this.sex = sex;
- this.age = age;
- }
-
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
(2).编写资源处理类(GetDataResource):
- import java.util.ArrayList;
- import java.util.List;
-
- import org.json.JSONArray;
- import org.restlet.ext.json.JsonRepresentation;
- import org.restlet.representation.Representation;
- import org.restlet.resource.Get;
- import org.restlet.resource.ServerResource;
-
-
- //定义一个资源
- public class GetDataResource extends ServerResource {
-
- /**返回JSON类型数据*/
- @Get
- private Representation getJsonData() {
- List<Student> list = new ArrayList<Student>();
- Student stu1 = new Student("曹操","男",50);
- Student stu2 = new Student("小乔","女",23);
- Student stu3 = new Student("周瑜","男",32);
- list.add(stu1);
- list.add(stu2);
- list.add(stu3);
- //把list集合转换为json对象
- JSONArray arr = new JSONArray(list);
- return new JsonRepresentation(arr);
- }
-
- }
(3).通过浏览器访问该资源,结果如下:
[{"sex":"男","age":50,"name":"曹操"},{"sex":"女","age":23,"name":"小乔"},{"sex":"男","age":32,"name":"周瑜"}]
2.返回xml类型数据:
(1).编写学生实体类(Student.java):
方法同上。
(2).编写资源处理类(GetDataResource):
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
-
- import org.restlet.data.MediaType;
- import org.restlet.ext.xml.DomRepresentation;
- import org.restlet.resource.Get;
- import org.restlet.resource.ResourceException;
- import org.restlet.resource.ServerResource;
- import org.w3c.dom.Document;
- import org.w3c.dom.Node;
-
-
- //定义一个资源
- public class GetDataResource extends ServerResource {
-
- /**返回XML类型数据*/
- @Get
- public DomRepresentation getXMLData() throws ResourceException, IOException{
- //创建请求参数
- DomRepresentation representation = new DomRepresentation(MediaType.APPLICATION_XML);
- Document doc = representation.getDocument() ;
- //创建节点
- Node studentsNode = doc.createElement("Students");
- List<Student> list = new ArrayList<Student>();
- Student stu1 = new Student("曹操","男",50);
- Student stu2 = new Student("小乔","女",23);
- Student stu3 = new Student("周瑜","男",32);
- list.add(stu1);
- list.add(stu2);
- list.add(stu3);
- //设置值
- for(Student stu : list){
- Node studentNode = doc.createElement("student");
- Node nameNode = doc.createElement("name");
- Node sexNode = doc.createElement("sex");
- Node ageNode = doc.createElement("age");
-
- nameNode.setTextContent(stu.getName() + "");
- sexNode.setTextContent(stu.getSex() + "");
- ageNode.setTextContent(stu.getAge() + "");
-
- studentNode.appendChild(nameNode);
- studentNode.appendChild(sexNode);
- studentNode.appendChild(ageNode);
-
- studentsNode.appendChild(studentNode);
- }
- doc.appendChild(studentsNode);
- return representation ;
- }
-
- }
(3).通过浏览器访问该资源,结果如下:
上面就是关于restlet返回json和xml类型数据的两个小列子,使用起来很简单。