从Java中的RESTWeb服务生成具有对象名称的JSON
我编写了一个RESTWeb服务,它返回JSON,如下所示从Java中的RESTWeb服务生成具有对象名称的JSON,java,json,web-services,rest,Java,Json,Web Services,Rest,我编写了一个RESTWeb服务,它返回JSON,如下所示 [{"id":0,"name":"Vishal","age":"23","dob":"21/1/1992","phone":"9966558","sslc":"90","hsc":"90","college":"90"}, {"id":0,"name":"Karthik","age":"27","dob":"14/8/1988","phone":"995674","sslc":"99","hsc":"100","college":"10
[{"id":0,"name":"Vishal","age":"23","dob":"21/1/1992","phone":"9966558","sslc":"90","hsc":"90","college":"90"},
{"id":0,"name":"Karthik","age":"27","dob":"14/8/1988","phone":"995674","sslc":"99","hsc":"100","college":"100"},
{"id":0,"name":"Jeeva","age":"29","dob":"10/1/1987","phone":"77422","sslc":"99","hsc":"99","college":"100"},
{"id":0,"name":"Arya","age":"26","dob":"10/1/1989","phone":"55668","sslc":"100","hsc":"99","college":"99"}]
但我希望输出中附加“student”,如下所示
{"student":[{"id":0,"name":"Vishal","age":"23","dob":"21/1/1992","phone":"9966558","sslc":"90","hsc":"90","college":"90"},
{"id":0,"name":"Karthik","age":"27","dob":"14/8/1988","phone":"995674","sslc":"99","hsc":"100","college":"100"},
{"id":0,"name":"Jeeva","age":"29","dob":"10/1/1987","phone":"77422","sslc":"99","hsc":"99","college":"100"},
{"id":0,"name":"Arya","age":"26","dob":"10/1/1989","phone":"55668","sslc":"100","hsc":"99","college":"99"}]}
我如何实现这个输出
下面是产品类别
@XmlRootElement(name="student")
public class Student implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
public Student() {
super();
}
public Student(int id, String name, String age, String dob, String phone,
String sslc, String hsc, String college) {
super();
this.id = id;
this.name = name;
this.age = age;
this.dob = dob;
this.phone = phone;
this.sslc = sslc;
this.hsc = hsc;
this.college = college;
}
private int id;
private String name;
private String age;
private String dob;
private String phone;
private String sslc;
private String hsc;
private String college;
@XmlElement
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@XmlElement
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
@XmlElement
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@XmlElement
public String getSslc() {
return sslc;
}
public void setSslc(String sslc) {
this.sslc = sslc;
}
@XmlElement
public String getHsc() {
return hsc;
}
public void setHsc(String hsc) {
this.hsc = hsc;
}
@XmlElement
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age
+ ", dob=" + dob + ", phone=" + phone + ", sslc=" + sslc
+ ", hsc=" + hsc + ", college=" + college + "]";
}
}
下面是服务类
@GET
@Path("/student.srv")
@Produces("application/json")
public Response getStudentJson(){
DAOLayer daoLayer=new DAOLayer();
List<Student> studentsList=null;
try {
studentsList=daoLayer.getStudents();
} catch (SQLException e) {
e.printStackTrace();
}
return Response.ok(studentsList).build();
}
@GET
@路径(“/student.srv”)
@生成(“应用程序/json”)
公共响应getStudentJson(){
DAOLayer DAOLayer=新DAOLayer();
List studentsList=null;
试一试{
studentsList=daoLayer.getStudents();
}捕获(SQLE异常){
e、 printStackTrace();
}
返回Response.ok(studentsList.build();
}
请帮助我实现上述输出。
提前感谢。要获得所需的输出,您必须创建一个包含
学生列表的根对象,并返回它:
Root.java
@XmlRootElement(name=“root”)
公共类根实现可序列化{
@XML列表
private List student=new ArrayList();
//接二连三
}
Service.java
@GET
@路径(“/student.srv”)
@生成(“应用程序/json”)
公共响应getStudentJson(){
DAOLayer DAOLayer=新DAOLayer();
List studentsList=null;
试一试{
studentsList=daoLayer.getStudents();
}捕获(SQLE异常){
e、 printStackTrace();
}
根=新根();
root.setStudent(studentsList),
返回Response.ok(root.build();
}
要获得所需的输出,您必须创建一个包含学生列表的根对象,并返回它:
Root.java
@XmlRootElement(name=“root”)
公共类根实现可序列化{
@XML列表
private List student=new ArrayList();
//接二连三
}
Service.java
@GET
@路径(“/student.srv”)
@生成(“应用程序/json”)
公共响应getStudentJson(){
DAOLayer DAOLayer=新DAOLayer();
List studentsList=null;
试一试{
studentsList=daoLayer.getStudents();
}捕获(SQLE异常){
e、 printStackTrace();
}
根=新根();
root.setStudent(studentsList),
返回Response.ok(root.build();
}
我认为您应该将root
名称更改为student
,但就是这样:)+1@DawidPura为什么?根对象从第一个{
它包含一个名为Student
的Student
列表。注意,OP包装了学生列表。啊,对了。忘记@xmlslist
注释吧,对不起!我用了这个,我想你应该把root
名称改为Student
,但就是这样:)+1@DawidPura为什么?根对象从第一个{
并且它包含一个名为Student
的Student
列表。注意OP包装了学生列表。啊,对了。忘记@xmlslist
注释吧,抱歉!我用了这个
@XmlRootElement(name="root")
public class Root implements Serializable {
@XmlList
private List<Student> student = new ArrayList<Student>();
// getter and setter
}
@GET
@Path("/student.srv")
@Produces("application/json")
public Response getStudentJson(){
DAOLayer daoLayer=new DAOLayer();
List<Student> studentsList=null;
try {
studentsList=daoLayer.getStudents();
} catch (SQLException e) {
e.printStackTrace();
}
Root root = new Root();
root.setStudent(studentsList),
return Response.ok(root).build();
}