您的位置:首页 > Web前端 > JavaScript

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

2013-11-21 12:53 656 查看

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类型数据的两个小列子,使用起来很简单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息