繁体   English   中英

如何使用Jersey和json检索Java中宁静的Web服务的有效负载数据

[英]how to retrive payload data of restful web service in java using jersey and json

我正在使用Jersey,Json和mysql在Java中进行静态Web服务。 通过使用chrome的高级rest客户端的POST方法,我通过有效负载发送json数据。 现在我想读取我的java文件中的json数据该怎么做?

我的代码:-

public ArrayList<FeedObjects> GetStudent(Connection connection) throws Exception
{
    ArrayList<FeedObjects> feedStudent = new ArrayList<FeedObjects>();
    try
    {
        //String uname = request.getParameter("uname");
        //PreparedStatement ps = connection.prepareStatement("SELECT book_id,bookname,price,author FROM book ORDER BY book_id DESC");

        PreparedStatement ps1 = connection.prepareStatement("SELECT * FROM student,CollegeMaster where student.c_id=1 AND CollegeMaster.c_id = 1");
        //ps.setString(1,uname);
        //ResultSet rs = ps.executeQuery();
        ResultSet rs1 = ps1.executeQuery();
        while(rs1.next())
        {
            FeedObjects feedObject = new FeedObjects();

            feedObject.setS_id(rs1.getString("s_id"));
            feedObject.setS_name(rs1.getString("s_name"));
            feedObject.setS_address(rs1.getString("s_address"));
            feedObject.setS_contact(rs1.getString("s_contact"));
            feedObject.setS_class(rs1.getString("s_class"));
            feedObject.setC_name(rs1.getString("c_name"));
            feedObject.setC_address(rs1.getString("c_address"));
            feedStudent.add(feedObject);
        }
        return feedStudent;
    }
    catch(Exception e)
    {
        throw e;
    }
}

我从json中的高级剩余客户端的有效载荷(POST方法的有效载荷)中提取了{“ c_id”:“ 1”}。 现在,我想从我的Java程序中读取此c_id,然后从上面的代码中读取..我想将该c_id = 1添加到下面编写的查询中。 PreparedStatement ps1 = connection.prepareStatement(“选择*来自学生,CollegeMaster,其中student.c_id = 1 AND CollegeMaster.c_id = 1”);

您好,这是我为您工作的示例。

创建这样的第一个动作类,您可以在其中读取json并执行所需的逻辑。

package com.webapp.actions.api.task;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
import com.webapp.models.TaskModel;
import com.webapp.models.UserModel;

@Path("/api/task")
public class TaskAction extends BusinessApiAction {

@POST
@Consumes({ "application/json", "application/xml" })
@Produces({ "application/json", "application/xml" })
public Response insertTask(TaskModel taskModel) throws IOException {


    //you can print values in taskModel (your json)

    // insert u=your logic for work on your json data.  


   }
}

还根据您的json ex设计模型类。 这里

package com.webapp.models;
public class TaskModel  


private String taskId;
private String title;
private String descriptionText;
private boolean completed;
private long dateDue;
private int priority;
private String userId;


public String getTaskId() {
    return taskId;
}

public void setTaskId(String taskId) {
    this.taskId = taskId;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getDescriptionText() {
    return descriptionText;
}

public void setDescriptionText(String descriptionText) {
    this.descriptionText = descriptionText;
}

public boolean isCompleted() {
    return completed;
}

public void setCompleted(boolean completed) {
    this.completed = completed;
}

public long getDateDue() {
    return dateDue;
}

public void setDateDue(long dateDue) {
    this.dateDue = dateDue;
}

public int getPriority() {
    return priority;
}

public void setPriority(int priority) {
    this.priority = priority;
}

public boolean isAllDay() {
    return allDay;
}


public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}
}

现在您的json看起来像这样

    {
    "auth_token":"95dsfsdf758f75049",
   "taskId":"27878HG",
   "title":"my task",
   "descriptionText":"this is new task",
   "completed":false,
   "dateDue":1393911124000,
   "priority":1,
   "roleId":"GHsT-5sf1-4719-84E6F-8CGFR42189" 
}

和方法,您将

   http://localhost:8080/myproject/api/task.json

和方法是POST()并添加请求标头内容类型:application / json

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM