如何使用Servlet从POST请求中获取JSON数据

时间:2014-04-04 05:27:48

标签: java jquery json servlets

这是我在客户端的代码:

 $.ajax({
                    type:'POST',
                    charset:'utf-8',
                    url:'http://localhost:8180/GisProject/MainService',
                    data:JSON.stringify(params),
                    success:function(msg)
                    {
                        console.log(msg);
                    },
                    error:function(xhr,status)
                    {
                        console.log(status);
                    },      
                    contentType:"application/json"  
            });

我之前使用express.bodyParser在Node中解析了这些数据,但现在我必须使用servlet解析它。我看到人们在不使用JSON.stringify的情况下分配变量并获取该变量使用request.getParameter(myData)

JSON数据导入servlet

的标准方法是什么?

为什么人们似乎发送Javascript objects将JSON嵌入为data:{mydata:JSON.stringify(actualData)}内的字符串?

如果我不清楚,我想使用doPost方法的request对象来获取我从客户端发送的数据。

4 个答案:

答案 0 :(得分:4)

在servlet的服务器端,您可以从request.getReader()

读取POST数据有效负载

您可以使用GSON之类的JSON库来解析JSON。类似的东西:

YourClass obj = new Gson().fromJson(request.getReader(), YourClass.class)

答案 1 :(得分:1)

试试这个:

 $.ajax({
            type:"POST",
            url:'http://localhost:8180/GisProject/MainService',
            data:{mydata:JSON.stringify(params)},
            datatype:"json",
            success:function(msg)
            { 
               console.log(msg);
            },
            error:function(xhr,status)
            {
                 console.log(status);
             }, 
        });

答案 2 :(得分:0)

你可以将请求和响应对象发送到doGet方法,然后以相同的方式获取json。

将对象发送到doGet的方法

doGet(请求,响应);把它叫做post方法。

答案 3 :(得分:-1)

希望这对你有所帮助:

var obj = jQuery.parseJSON('{“name”:“John”}'); alert(obj.name ===“John”);