我有一个代码可以从邮递员获取尸体POST
:
@RequestMapping(value="/dep", method=RequestMethod.POST)
public JsonResponse dep(@RequestBody String body) throws SQLException {
Connection connection = ConnectionSingleton.getInstance().getConnection(env);
Statement statement = connection.createStatement();
statement.close();
connection.close();
System.out.println("BODY #### "+body);
return new JsonResponse("depreciated");
}
邮递员已发送:
{
"idn":"MLCM00292",
"monto":"9149.92"
}
字符串类似于:
%7B%0A%09%22 idn %22%3A%22 MLCM00292 %22%2C%0A%09%22 monto %22%3A%22 9149.92 %22%0A%7D =
粗体字是参数及其分配的值。我想接收像变量这样的参数。在POST请求中从主体获取参数的正确方法是什么?我的代码中缺少什么?
答案 0 :(得分:1)
您可以像这样使用Map:
public JsonResponse dep(@RequestBody Map<String, String> body)
然后在方法内部获取如下值:
String id = body.get("idn");
String monto = body.get("monto");
您可以根据需要更改Map
类的泛型类型。例如,如果您要接收不同类型的值,则可以像Map<String, Object> body
那样使用它,那么您可以根据数据类型(必须事先知道)来解析每个值。像这样:
String id = body.get("idn").toString();
double monto = Double.parseDouble(body.get("monto").toString());
对于更复杂的数据类型,建议您创建一些自定义POJO或JavaBean。
更多读数