【问题标题】:How to send javascript arrays to a servlet using JSONObject如何使用 JSONObject 将 javascript 数组发送到 servlet
【发布时间】:2014-02-26 09:10:40
【问题描述】:

我有 2 个数组用于在 javascript 中存储某些位置的纬度和经度。我想将这两个数组发送到 java servlet。我正在发送这样的 JSON 字符串: 函数 saveGeoPts() {

var GeoPts = [
 { "lati" : "18.55" , "longi" : "73.88" }, 
 { "lati" : "18.67" , "longi" : "73.89" }, 
 { "lati" : "18.59" , "longi" : "73.99" }, ];

for(var i=0;i<GeoPts.length;i++)
{
    //document.write(GeoPts[i].lati+"  "+GeoPts[i].longi+"   ");
}
// convert JSON to string
var jsonString = JSON.stringify(GeoPts);
document.getElementById('jsonData').value = jsonString;

}</script>
</head>
 <body>
<form action="Controller" method="post">
<input type="hidden" id="jsonData" name="jsonData" />
  <input type="submit" onclick="saveGeoPts()" >
</form>
</body>

并试图以这种方式获取

     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws      ServletException, IOException {
    // TODO Auto-generated method stub
    System.out.print("in post");
    JSONParser parser = new JSONParser();
    String jsonString = request.getParameter("jsonData");
    try {
        JSONObject jsonObject = (JSONObject) parser.parse(jsonString);
        System.out.print(jsonObject.get("lati"));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

【问题讨论】:

  • 这是工作还是不工作?
  • 不工作。我不明白这是否是正确的方式
  • 您遇到的错误是什么?
  • 尝试在服务器端打印 jsonString。你得到了什么?

标签: javascript json servlets


【解决方案1】:

从您的问题中,我了解您如何准备数据

var data = JSON.stringify(jsonObject);

我不明白你是如何发送的。我建议你使用 jQuery ajax 来做这些事情。

var GeoPts = [
 { "lati" : "18.55" , "longi" : "73.88" }, 
 { "lati" : "18.67" , "longi" : "73.89" }, 
 { "lati" : "18.59" , "longi" : "73.99" } 
];

$.ajax({
  url: "YOUR_URL",
  data: GeoPts,
  type: "POST"

}).done(function(response) {

  // your logic of success callback

}).error(function(error){

  // your logic of error callback

});

如果您想以这种格式向您的服务器发送数据:“param=1&paramt=3....”。 你可以使用这个:

$.param({param:1 , paramT:3});
// output "param=1&paramT=3"

【讨论】:

  • 我将此 JSON 对象设置为隐藏参数并使用表单发送到 servlet
猜你喜欢
  • 2013-12-21
  • 2016-05-04
  • 2015-01-29
  • 2013-01-26
  • 1970-01-01
  • 2014-10-11
  • 2013-12-31
  • 2019-05-02
  • 2012-10-25
相关资源
最近更新 更多