我正在尝试使用Java Spark作为我的框架从HTTP POST请求中收集json String。
它自己的代码工作正常:
Gson gson = new Gson();
String userJson = "{\"name\":\"user\",\"age\":18,\"messages\":[\"Look ma... Gson to Object!\"]}";
User u = gson.fromJson(userJson, User.class);
UserDAO userD = new UserDAO(User.class);
userD.create(u);
然而,当它被包裹在帖子中时:
post("/user", (req, res) ->
{
String userJson2 = gson.toJson(req.body());
User u2 = gson.fromJson(userJson2, User.class);
UserDAO userD2 = new UserDAO(User.class);
return userD2.create(u2);
});
我得到:500内部错误。
违规行是:
User u2 = gson.fromJson(userJson, User.class);
请求如下:
curl -X POST -H 'Content-Type: application/json' -d '{"name":"user", "age":18, "message": ["Look ma... Gson to OBjectlear!... from the commandline!"]}' http://localhost:4567/user
如果我删除了对象转换代码,它可以正常工作并返回正确解析的json字符串。
非常感谢任何帮助。