在 Postman 的请求正文中传递多个 JSON 数据并使用 Jersy(JXRS) 进入 Java Rest API
Posted
技术标签:
【中文标题】在 Postman 的请求正文中传递多个 JSON 数据并使用 Jersy(JXRS) 进入 Java Rest API【英文标题】:Pass multiple JSON data in Request Body of Postman and Get into Java Rest API using Jersy(JXRS) 【发布时间】:2018-11-04 11:27:21 【问题描述】:我想获取多个 JSON 数据,这些 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";
当我通过传递多个 JSON 数据来满足邮递员的请求时,即使 getPateintDetails 方法也没有调用,如何在 Rest API 中传递和获取多个 json 数据。请给我相同的解决方案或参考链接。
【问题讨论】:
请添加您遇到的错误代码和异常 【参考方案1】:检查这个正在寻找的小型工作示例..
Track.java
public class Track
String title;
String singer;
//getters and setters
@Override
public String toString()
return "Track [title=" + title + ", singer=" + singer + "]";
JSONService.java
@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";
网址:http://localhost:8080/RESTfulExample/rest/json/check/postMany 输入数据:
[
"title" : "hai1",
"singer" : "sree1"
,
"title" : "hai2",
"singer" : "sree2"
,
"title" : "hai3",
"singer" : "sree3"
]
【讨论】:
我正在尝试完全一样,但是json格式错误 现在问题解决了吗?您发布的数据格式是什么? "患者":[ "firstName":"riya","lastName":"soni", "firstName":"shreya","lastName":"patel" ] 现在我在 Patient 类中有另一个列表,即 List通过以下格式尝试 JSON。
"data" : [
"firstName":"riya","lastName":"soni",
"firstName":"shreya","lastName":"patel"
]
先解析JSON并获取data变量,然后用它来获取数组中的每个对象。
【讨论】:
是的,正确的。这种格式工作正常。我使用了错误的格式 但是,我在 Patient 类中有另一个列表,即 List以上是关于在 Postman 的请求正文中传递多个 JSON 数据并使用 Jersy(JXRS) 进入 Java Rest API的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Postman 以 JSON 格式在请求正文中发送对象数组?
如何在 Postman Collection 中指定 JSON 请求正文示例