日期:2014-05-16  浏览次数:20266 次

js获取java后台数据
我用JSONArray封装java servlet中从数据库读取的list,然后在js中运用JSONArray的数据,这样写不知对不,哪位大牛帮忙看下,谢谢!下面为部分java代码:
JSONArray ja=JSONArray.fromObject(lists);
System.out.println(ja);
下面为JS部分代码:
function getdata(){
  var data="";
  $.ajax({
type : "POST",
contentType : "application/json",
url : "ShowServlet,
dataType : 'json',
success : function(result) {
alert(result);
var statementsdata="";
for(i=0;i<result.length;i++) {
if(i<result.length-1){
statementsdata+="{\"tlongitude\""+":"+"\""+result[i].tlongitude+"\"" +","+"\"tlatitude\""+":"+"\""+result[i].tlatitude+"\""+","+"\"type\""+":"+"\""+result[i].type+"\""+","+"\"name\""+":"+"\""+result[i].name+"\""+","+"\"status\""+":"+"\""+result[i].status+"\""+","+"\"dlongitude\""+":"+"\""+result[i].dlongitude+"\""+","+"\"dlatitude\""+":"+"\""+result[i].dlatitude+"\""+"}"+",";
}else{
statementsdata+="{\"tlongitude\""+":"+"\""+result[i].tlongitude+"\"" +","+"\"tlatitude\""+":"+"\""+result[i].tlatitude+"\""+","+"\"type\""+":"+"\""+result[i].type+"\""+","+"\"name\""+":"+"\""+result[i].name+"\""+","+"\"status\""+":"+"\""+result[i].status+"\""+","+"\"dlongitude\""+":"+"\""+result[i].dlongitude+"\""+","+"\"dlatitude\""+":"+"\""+result[i].dlatitude+"\""+"}";
}
}
 
 
data="["+statementsdata+"]";

}
});
  return data;
  }
function initialize() {
  var obj=getdata();
  var obj1=eval(obj);
  var points=[];
  for (var i = 0; i < obj1.length; i++) {
  var point=new GLatLng(obj1[i].tlongitude,obj1[i].tlatitude);
  var point1=new GLatLng(obj1[i].dlongitude,obj1[i].dlatitude);
  points.push(point);
  map.addOverlay(new GMarker(point1));
  }
  points.sort(function(p1, p2) { return p1.lng() - p2.lng();});
// 畫線!
map.addOverlay(new GPolyline(points,"#FF0000"));

谢谢!!!

------解决方案--------------------
没必要吧。你拿到的不就是一个封装好的json对象么? 为什么还要自己拿出来封装一次。然后再丢进去呢?