Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java中的RESTWeb服务生成具有对象名称的JSON_Java_Json_Web Services_Rest - Fatal编程技术网

从Java中的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

我编写了一个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":"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();
}