在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入JavaRESTAPI
我希望获得多个JSON数据,并以JSON格式传递给Postman 如果我传递单个json数据,比如:“{”firstName:“riya”,“lastName:“soni”}”,那么我可以在下面提到的Java API中获得它:在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
@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类。同时添加您发送的输入和收到的异常。检查问题将很容易,而不是从评论中读取问题。。