Java 与ajax请求一起发送时返回null的json值

Java 与ajax请求一起发送时返回null的json值,java,jquery,ajax,json,Java,Jquery,Ajax,Json,我试图将json字符串发送到服务器,然后将其存储在db中 以下是我的代码: $.ajax({ url: 'JsonProcessor.do', type: 'post', dataType: 'json', data: { loadProds: 1, test: JSON.stringify(StateObject) }, s

我试图将json字符串发送到服务器,然后将其存储在db中

以下是我的代码:

$.ajax({
        url: 'JsonProcessor.do',
        type: 'post',
        dataType: 'json',
        data: {
                loadProds: 1,
                test: JSON.stringify(StateObject)
              },
        success: function (data) 
        {
        console.log("worked");
        },
         error: function (data) {
         alert('failed');
        }
        });
Servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String json = request.getParameter("test");
        System.out.println("json is: " + json);
        Connection con = null;
        ResultSet rs = null;
        try {
            con = OracleDBConnection.getConnection();
            String query = "insert into JJS (JSON_INFO) values(?)";
            PreparedStatement pst = con.prepareStatement(query);
            pst.setString(1, json);
            rs = pst.executeQuery();
            if (rs.next()) {
                System.out.println("sucess");
            } else {
                System.out.println("failed");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("DB releated exception");
        } 
但是,当我尝试打印
request.getparameter(json)
时,它返回null

这是我正在尝试发送的json:

 {
    "cells": [
        {
            "type": "basic.Rect",
            "position": {
                "x": -2,
                "y": 33
            },
            "size": {
                "width": 71,
                "height": 625
            },
            "angle": 0,
            "isInteractive": false,
            "id": "e276b993-af5e-4e32-9879-fc3d817c0811",
            "z": 1,
            "attrs": {
                "rect": {
                    "fill": "#EEEEEE",
                    "stroke": "#008B8B",
                    "stroke-width": 2
                },
                ".": {
                    "magnet": false
                }
            }
        },
        {
            "type": "basic.Rect",
            "position": {
                "x": 10,
                "y": 50
            },
            "size": {
                "width": 51,
                "height": 41
            },
            "angle": 0,
            "isInteractive": false,
            "id": "f8826904-678c-4857-ad46-f86e69d1db32",
            "z": 2,
            "attrs": {
                "rect": {
                    "fill": "#D6F2FC",
                    "stroke": "#7E7E7E"
                },
                ".": {
                    "magnet": false
                }
            }
        },
        {
            "type": "basic.Circle",
            "size": {
                "width": 53,
                "height": 53
            },
            "position": {
                "x": 8,
                "y": 130
            },
            "angle": 0,
            "isInteractive": false,
            "id": "e4ee7b74-3c06-4e1e-8ce7-8baf6743c27c",
            "z": 3,
            "attrs": {
                ".": {
                    "magnet": false
                },
                "circle1": {
                    "fill": "white",
                    "stroke-width": 2,
                    "stroke": "green"
                }
            }
        },
        {
            "type": "basic.Circle",
            "size": {
                "width": 53,
                "height": 53
            },
            "position": {
                "x": 8,
                "y": 225
            },
            "angle": 0,
            "isInteractive": false,
            "id": "04d4a40b-f99b-4c16-89a9-7d072e30c4ad",
            "z": 4,
            "attrs": {
                ".": {
                    "magnet": false
                },
                "circle2": {
                    "fill": "white",
                    "stroke": "green"
                }
            }
        },
        {
            "type": "basic.Circle",
            "size": {
                "width": 53,
                "height": 53
            },
            "position": {
                "x": 8,
                "y": 320
            },
            "angle": 0,
            "isInteractive": false,
            "id": "97a01219-b7e2-4a52-9248-eb41dc7443b4",
            "z": 5,
            "attrs": {
                ".": {
                    "magnet": false
                },
                "circle3": {
                    "fill": "white",
                    "stroke": "green"
                }
            }
        },
        {
            "type": "basic.Rect",
            "position": {
                "x": 10,
                "y": 420
            },
            "size": {
                "width": 51,
                "height": 41
            },
            "angle": 0,
            "isInteractive": false,
            "id": "ed74bfd7-c7e2-4f68-85c3-0f1865243d3e",
            "z": 6,
            "attrs": {
                ".": {
                    "magnet": false
                },
                "rectGroup0": {
                    "fill": "white",
                    "stroke": "#7E7E7E"
                }
            }
        },
        {
            "type": "basic.Rect",
            "position": {
                "x": 35,
                "y": 505
            },
            "size": {
                "width": 45,
                "height": 45
            },
            "angle": 0,
            "isInteractive": false,
            "id": "008c90ea-2598-4761-8775-fc3601c8935d",
            "z": 7,
            "attrs": {
                "rect": {
                    "fill": "#FFED6B",
                    "stroke": "#DBCB62",
                    "width": 1,
                    "height": 1,
                    "stroke-width": 1,
                    "transform": "rotate(45)"
                },
                ".": {
                    "magnet": false
                }
            }
        }
    ]
}

您的代码存在多个问题:

发送时,jquery已经为您执行了stringify,因此您自己调用它时,实际上是在发送的json中创建了一个string属性(您可以通过使用浏览器查看发送的数据来轻松检查)

将实际创建一个http请求主体,如下所示:

{
   loadProds: 1,
   test: "{\"state\": .... "
}
所以只要写下:

 $.ajax({
    url: 'JsonProcessor.do',
    type: 'post',
    dataType: 'json',
    data: {
            loadProds: 1,
            test: StateObject
          },
      ...
在这方面你会很好的

至于服务器部分,实际上您正在寻找一个名为“test”的请求参数。但这不是我们要发送的。相反,您将得到一个包含json的“body”。使用dataType:json时没有标准的请求参数

你的情况就是这样

 String json = IOUtils.toString(request.getInputStream());
也不是说您在那里检索的json包含“loadProps:1”。。。
然后,您可能希望将字符串转换为对象(使用jackson),以便使用它。

您的代码存在多个问题:

发送时,jquery已经为您执行了stringify,因此您自己调用它时,实际上是在发送的json中创建了一个string属性(您可以通过使用浏览器查看发送的数据来轻松检查)

将实际创建一个http请求主体,如下所示:

{
   loadProds: 1,
   test: "{\"state\": .... "
}
所以只要写下:

 $.ajax({
    url: 'JsonProcessor.do',
    type: 'post',
    dataType: 'json',
    data: {
            loadProds: 1,
            test: StateObject
          },
      ...
在这方面你会很好的

至于服务器部分,实际上您正在寻找一个名为“test”的请求参数。但这不是我们要发送的。相反,您将得到一个包含json的“body”。使用dataType:json时没有标准的请求参数

你的情况就是这样

 String json = IOUtils.toString(request.getInputStream());
也不是说您在那里检索的json包含“loadProps:1”。。。
然后,您可能希望将字符串转换为对象(使用例如jackson),以便使用它。

什么是
请求。getparament
?:W什么是请求。getparament?:什么是加载道具:1?我从其他siteloadProps上获得了它:我没有主意,它只是附加数据,如果你不使用它,只需写“data:StateObject”,然后它就会写入你的数据jackson:你的cp中也需要apache commons lang()什么是loadProps:1?我从其他siteloadProps上获得了它:我没有主意,它只是附加数据,如果你不使用它,只需写“data:StateObject”,然后它就会写入你的数据jackson:你的cp中也需要apache commons lang()