为什么我在解析servlet中的json对象时获取null值

时间:2017-03-29 08:56:14

标签: java json servlets postman

来自邮递员的我的Json对象:

{
    "sender":"hello"
}

我的servlet dopost方法:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException {

    Gson gs = new Gson();
    String chatId = gs.fromJson(req.getParameter("sender"), String.class);
    JSONObject obj = new JSONObject(); 

    JSONArray arr= new JSONArray();
    try {
        obj.put("name", chatId);
        arr.add(obj);
    }       
    finally {
    }
    resp.setContentType("application/json");
    resp.setCharacterEncoding("utf-8");
    resp.getWriter().println(arr);
}   

我做错了什么?

2 个答案:

答案 0 :(得分:0)

我认为JSON会出现在请求正文中。请参阅Get the POST request body from HttpServletRequest以从HttpServletRequest读取请求主体。

答案 1 :(得分:0)

我做错了是没有正确使用Gson。

HashMap<String,String> map = new Gson().fromJson( new JsonReader(request.getReader()), new TypeToken<HashMap<String, String>>(){}.getType());

此代码直接将我的Json正文转换为Hashmap