簡體   English   中英

使用Java的REST Web服務生成帶有對象名稱的JSON

[英]Produce JSON with name of the object from REST web services in Java

我寫了一個REST Web服務,它返回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":"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":[{"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();
}

請幫助我實現上述輸出。 提前致謝。

為了獲得所需的輸出,您將必須創建一個包含List<Student> student單個根對象,並將其返回:

Root.java

@XmlRootElement(name="root")
public class Root implements Serializable {

    @XmlList
    private List<Student> student = new ArrayList<Student>();

    // getter and setter
}

Service.java

@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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM