我想获取多个 JSON 数据,并将其以 Json 格式传递到 Body 中的 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 数据。请给我相同的解决方案或参考链接。
检查这个正在寻找的小工作示例..
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";
}
}
URL:http://localhost:8080/RESTfulExample/rest/json/check/postMany 输入数据:
[{
"title" : "hai1",
"singer" : "sree1"
},
{
"title" : "hai2",
"singer" : "sree2"
},
{
"title" : "hai3",
"singer" : "sree3"
}]
通过传递以下格式来尝试 JSON。
{
"data" : [
{"firstName":"riya","lastName":"soni"},
{"firstName":"shreya","lastName":"patel"}
]
}
首先解析 JSON 并获取数据变量,然后使用它来获取数组中的每个对象。