在servlet中使用JSON对象时出现问题

Shr*_*yas 3 jquery json servlets

这就是我正在尝试做的事情,它非常简单,但我遇到了困难:我正在尝试将JSP中形成的JSON对象发送到服务器端servlet并解析它.

到目前为止我做了什么:

  • 构建了json.
  • 将json发送到后端
$.ajax({
            data: jsontosend,
            url: 'MYSERVLET?name=asdf',
            success: function(res){
                alert('posted');
            }
        })

问题:

  • 这个JSON的名称是什么,所以我可以使用request.getParameter()在servlet中获取它?
  • 当我打印request.getParameterNames()时,我得到参数名称作为JSON字符串本身,所以MYSERVLET内的所有参数名称的输出如下所示
Parameter = name
Parameter = {"ticker":"asd","date":"asd","bucket":"300","entry":[{"type":"asd","indicator":"asd","condition":"asd"}],"exit":[{"type":"qwe","indicator":"qwe","condition":"qwe"}]}

任何人都知道问题是什么?

此外,我尝试在stackoverflow上查看这个问题,但也存在同样的问题.还有一个重复的问题尚未得到解答.

救命!:(

JB *_*zet 5

阅读http://api.jquery.com/jQuery.ajax/#sending-data-to-server:

data选项可以包含形式为key1 = value1&key2 = value2的查询字符串,或者包含{key1:'value1',key2:'value2'}形式的映射.如果使用后一种形式,则在发送之前使用jQuery.param()将数据转换为查询字符串.

所以,你应该使用

$.ajax({
        data: {theNameOfTheParameter : jsontosend,
               name : 'asdf'},
        url: 'MYSERVLET',
        success: function(res){
            alert('posted');
        }
    })
Run Code Online (Sandbox Code Playgroud)

并用于request.getParameter("theNameOfTheParameter")获取JSON字符串.