为您的数据创建一个包装器对象(在本例中为 Person 类)并使用 @XMLRootElement 对其进行注释
您的 post 方法应如下所示
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void post(List<Person> people) {
//notice no annotation on the method param
dao.putAll(people);
//do what you want with this method
//also best to return a Response obj and such
}
这是在请求中发送数据的正确方法。
但是如果你想有一个 QueryParam 作为 JSON 数据,你可以这样做
假设您的请求参数如下所示: String people = "{\"person\":[{\"email\":\"asdasd@gmail.com\",\"name\":\"asdasd\"}, {\"email\":\"Dan@gmail.com\",\"name\":\"Dan\"},{\"email\":\"Ion@gmail.com\",\"name \":\"dsadsa\"},{\"email\":\"Dan@gmail.com\",\"name\":\"ertert\"},{\"email\":\"Ion @gmail.com\",\"名称\":\"离子\"}]}";
您注意到它是一个名为“person”的 JSONObject,其中包含一个 JSONArray,其中包含其他类型为 Person 的 JSONObjets,名称为电子邮件:P 您可以像这样遍历它们:
try {
JSONObject request = new JSONObject(persons);
JSONArray arr = request.getJSONArray("person");
for(int i=0;i<arr.length();i++){
JSONObject o = arr.getJSONObject(i);
System.out.println(o.getString("name"));
System.out.println(o.getString("email"));
}
} catch (JSONException ex) {
Logger.getLogger(JSONTest.class.getName()).log(Level.SEVERE, null, ex);
}
sry