Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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
在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入JavaRESTAPI_Java_Rest_Jersey_Postman - Fatal编程技术网

在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入JavaRESTAPI

在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入JavaRESTAPI,java,rest,jersey,postman,Java,Rest,Jersey,Postman,我希望获得多个JSON数据,并以JSON格式传递给Postman 如果我传递单个json数据,比如:“{”firstName:“riya”,“lastName:“soni”}”,那么我可以在下面提到的Java API中获得它: @Path("patient") @POST @Consumes(MediaType.APPLICATION_JSON) public String getPatient(Patient patient) { System.out.println(patient.getF

我希望获得多个JSON数据,并以JSON格式传递给Postman

如果我传递单个json数据,比如:“{”firstName:“riya”,“lastName:“soni”}”,那么我可以在下面提到的Java API中获得它:

@Path("patient")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public String getPatient(Patient patient) {
System.out.println(patient.getFirstName());
System.out.println(patient.getLastName());
return "ok";
}
它工作正常。但是如果我想传递像[{“firstName”:“riya”,“lastName”:“soni”},{“firstName”:“shreya”,“lastName”:“patel”}]这样的数据

进入API,如下所示:

@Path("patientDetail")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public String getPatientDetails(@RequestBody List<Patient> patient) {
for (Patient p : patient) {
System.out.println(p.getFirstName());
System.out.println(p.getLastName());
}
return "ok";
}
@Path(“patientDetail”)
@职位
@使用(MediaType.APPLICATION_JSON)
公共字符串getPatientDetails(@RequestBody List patient){
用于(患者p:患者){
System.out.println(p.getFirstName());
System.out.println(p.getLastName());
}
返回“ok”;
}

如前所述,当我通过传递多个JSON数据来满足postman的请求时,即使getPateintDetails方法也没有调用,如何在RESTAPI中传递和获取多个JSON数据。请给我相同的解决方案或参考链接。

请按以下格式传递JSON

{
  "data" : [
    {"firstName":"riya","lastName":"soni"}, 
    {"firstName":"shreya","lastName":"patel"}
 ]
}

首先解析JSON并获取数据变量,然后使用它来获取数组中的每个对象。

检查这个正在查找的小型工作示例

Track.java

public class Track {
    String title;
    String singer;
    //getters and setters
    @Override
    public String toString() {
        return "Track [title=" + title + ", singer=" + singer + "]";
    }
}
@Path("/json/check")
public class JSONService {
    @POST
    @Path("/postManyAsString")
    @Consumes(MediaType.APPLICATION_JSON)
    public String createManyTrackInJSON(String jsonStr) throws Exception {
        JSONObject inputObject = new JSONObject(jsonStr);
        if(inputObject.get("tracks") instanceof JSONObject)
        {
            JSONObject jsonObject = (JSONObject) inputObject.get("tracks");
            System.out.println(jsonObject.get("title"));
            System.out.println(jsonObject.get("singer"));
        }
        else if(inputObject.get("tracks") instanceof JSONArray)
        {
            JSONArray jsonArray = (JSONArray) inputObject.get("tracks");
            for(int i=0; i<jsonArray.length(); i++)
            {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                System.out.println(jsonObject.get("title"));
                System.out.println(jsonObject.get("singer"));
            }
        }
        else
        {
            System.out.println(inputObject.get("tracks"));
        }
        return "Okay";
    }
}
JSONService.java

public class Track {
    String title;
    String singer;
    //getters and setters
    @Override
    public String toString() {
        return "Track [title=" + title + ", singer=" + singer + "]";
    }
}
@Path("/json/check")
public class JSONService {
    @POST
    @Path("/postManyAsString")
    @Consumes(MediaType.APPLICATION_JSON)
    public String createManyTrackInJSON(String jsonStr) throws Exception {
        JSONObject inputObject = new JSONObject(jsonStr);
        if(inputObject.get("tracks") instanceof JSONObject)
        {
            JSONObject jsonObject = (JSONObject) inputObject.get("tracks");
            System.out.println(jsonObject.get("title"));
            System.out.println(jsonObject.get("singer"));
        }
        else if(inputObject.get("tracks") instanceof JSONArray)
        {
            JSONArray jsonArray = (JSONArray) inputObject.get("tracks");
            for(int i=0; i<jsonArray.length(); i++)
            {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                System.out.println(jsonObject.get("title"));
                System.out.println(jsonObject.get("singer"));
            }
        }
        else
        {
            System.out.println(inputObject.get("tracks"));
        }
        return "Okay";
    }
}

请添加您收到的错误代码和异常是的,正确。此格式工作正常。我使用了错误的格式,但是,我在Patient类中有另一个列表,它是list patientDetails。我是通过这样的方法得到它的:for(Patient p:Patient){System.out.println(p.getFirstName());System.out.println(p.getLastName());List patientDetails=p.getPatientDetails();for(patientDetails pd:patientDetails){Sysout(pd.getChargeAmount());Sysout(pd.getItemNumber();}我的json类似于:{“Patient”:[{“firstName”:“riya”,“lastName:“soni”},{“patientDetails:[{“chargeAmount:“riya”,“itemNumber:“soni”}]}]}。但是在这方面遇到了异常。可能是您在代码中解析错误,您能发布代码和异常吗?可能是这个JSON格式是wong,我需要添加“patientDetails”“有姓和名。是吗?那会更有意义。json格式很好,只是不适合你的情况。我正是这样尝试的,但是json格式是错误的。现在问题解决了吗?您发布的数据格式是什么?{“patient”:[{“firstName”:“riya”,“lastName”:“soni”},{“firstName”:“shreya”,“lastName”:“patel”}}}现在我在patient类中有了另一个列表,即list patientDetails。我是通过这样的方法得到它的:for(Patient p:Patient){System.out.println(p.getFirstName());System.out.println(p.getLastName());List patientDetails=p.getPatientDetails();for(patientDetails pd:patientDetails){Sysout(pd.getChargeAmount());Sysout(pd.getItemNumber();}我的json类似于:{“Patient”:[{“firstName”:“riya”,“lastName”:“soni”},{“patientDetails”:[{“chargeAmount”:“riya”,“itemNumber”:“soni”}]}]}。但在这方面遇到了异常。请尝试在帖子中添加示例Patient和patientDetails类。同时添加您发送的输入和收到的异常。检查问题将很容易,而不是从评论中读取问题。。