2014-02-26 38 views
0

我有2個數組用於存儲javascript中某些位置的經度和緯度。我想將這兩個數組發送到一個java servlet。我送了JSON字符串是這樣的: 功能saveGeoPts() {如何將JavaScript數組發送到使用JSONObject的servlet

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(); 
    } 

} 
+0

這是工作還是不工作? – SajithNair

+0

無法正常工作。我不理解它是否正確 – ShrutiPurohit

+0

你得到的錯誤是什麼? – stepanian

回答

0

從你的問題我看你怎麼準備數據

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 

}); 

如果你想發送到服務器的數據格式爲: 「參數= 1個& paramt = 3 ......」。 你可以使用這個:

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

我將此JSON對象設置爲隱藏參數並使用表單發送給servlet – ShrutiPurohit

相關問題