如何在REST Response中以JSON Arrray格式检索结果(How to retrieve the result as JSON Arrray format in REST Respons

编程入门 行业动态 更新时间:2024-10-25 10:31:09
如何在REST Response中以JSON Arrray格式检索结果(How to retrieve the result as JSON Arrray format in REST Response)

我试图从数据库中检索数据,并以JSON数组的形式返回'Response'。 但现在我在浏览器中得到如下结果,这不是正确的JSON数组格式。 我如何以JSON数组的形式接收数据?

{"{\n \"id\": 14,\n \"name\": \"Test Doom Post\",\n \"email\": \"test@test1.com\...

JDK 1.7 Jersey(jaxrs-ri-2.25.1)Gson

//以下是我的Get方法:

@Path("/register") public class JSONService { @GET @Path("/get") @Produces("application/json") @Consumes("application/json") public Response getRegisterInJSON() { JSONObject requestedJSON = new JSONObject(); try { Class.forName("com.mysql.jdbc.Driver"); SoccerUtils dbConnection = new SoccerUtils(); Connection conn = dbConnection.getWeekendDBConnection(); PreparedStatement stmt = conn.prepareStatement("SELECT ID, FIRST_NAME, EMAIL FROM mycoolmap.weekendsoccer_login"); ResultSet rs = stmt.executeQuery(); while(rs.next()) { RegisterPlayer playerObj = new RegisterPlayer(); playerObj.setId(rs.getInt("ID")); playerObj.setName(rs.getString("FIRST_NAME")); playerObj.setEmail(rs.getString("EMAIL")); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json1 = gson.toJson(playerObj); requestedJSON.put(json1, json1); System.out.println(requestedJSON); } } catch (Exception e) { e.printStackTrace(); } finally { } return Response.status(Status.OK).entity(requestedJSON.toString()).build(); }

//注册Player POJO类:

@XmlRootElement public class RegisterPlayer implements Serializable { private int id; private String name; private String email; public RegisterPlayer() { } public RegisterPlayer(int id, String name, String email) { super(); this.id =id; this.name = name; this.email = email; } public int getId() { return id; } public void setId(int id) { this.id =id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "RegisterPlayer[id=" + id +", name=" + name +", email="+ email +"]"; } }

I am trying to retrieve the data from database and return them in 'Response' as JSON array. But now I am getting the result in browser as below, which is not the correct JSON array format. How can I receive the data as JSON Array ?

{"{\n \"id\": 14,\n \"name\": \"Test Doom Post\",\n \"email\": \"test@test1.com\...

JDK 1.7 Jersey (jaxrs-ri-2.25.1) Gson

//Following is my Get method below:

@Path("/register") public class JSONService { @GET @Path("/get") @Produces("application/json") @Consumes("application/json") public Response getRegisterInJSON() { JSONObject requestedJSON = new JSONObject(); try { Class.forName("com.mysql.jdbc.Driver"); SoccerUtils dbConnection = new SoccerUtils(); Connection conn = dbConnection.getWeekendDBConnection(); PreparedStatement stmt = conn.prepareStatement("SELECT ID, FIRST_NAME, EMAIL FROM mycoolmap.weekendsoccer_login"); ResultSet rs = stmt.executeQuery(); while(rs.next()) { RegisterPlayer playerObj = new RegisterPlayer(); playerObj.setId(rs.getInt("ID")); playerObj.setName(rs.getString("FIRST_NAME")); playerObj.setEmail(rs.getString("EMAIL")); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json1 = gson.toJson(playerObj); requestedJSON.put(json1, json1); System.out.println(requestedJSON); } } catch (Exception e) { e.printStackTrace(); } finally { } return Response.status(Status.OK).entity(requestedJSON.toString()).build(); }

// Register Player POJO class:

@XmlRootElement public class RegisterPlayer implements Serializable { private int id; private String name; private String email; public RegisterPlayer() { } public RegisterPlayer(int id, String name, String email) { super(); this.id =id; this.name = name; this.email = email; } public int getId() { return id; } public void setId(int id) { this.id =id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "RegisterPlayer[id=" + id +", name=" + name +", email="+ email +"]"; } }

最满意答案

正如罗斯在上述评论中所建议的,我创建了一个列表,添加对象并返回列表。 它按预期工作。

/Created a 'registerPlayerList' List List<RegisterPlayer> registerPlayerList = new ArrayList<RegisterPlayer>(); // Intialiaze the RegisterPlayer class RegisterPlayer playerObj = new RegisterPlayer(); //set all the values into the object playerObj.setId(rs.getInt("ID")); playerObj.setName(rs.getString("FIRST_NAME")); playerObj.setEmail(rs.getString("EMAIL")); ...... //add the playerObj to the created registerPlayerList registerPlayerList.add(playerObj); // return the list return registerPlayerList ;

As advised by Roman in above comment, I have created a list, add the object and return the list. It worked as expected.

/Created a 'registerPlayerList' List List<RegisterPlayer> registerPlayerList = new ArrayList<RegisterPlayer>(); // Intialiaze the RegisterPlayer class RegisterPlayer playerObj = new RegisterPlayer(); //set all the values into the object playerObj.setId(rs.getInt("ID")); playerObj.setName(rs.getString("FIRST_NAME")); playerObj.setEmail(rs.getString("EMAIL")); ...... //add the playerObj to the created registerPlayerList registerPlayerList.add(playerObj); // return the list return registerPlayerList ;

更多推荐

本文发布于:2023-08-06 03:34:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1444773.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中以   格式   如何在   Response   REST

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!