利用JSON进行前台和后端的数据传输

首先,JSON有两种结构:html

1)数组结构前端

[
    {
        key1:value1,
        key2:value2 
    },
    {
         key3:value3,
         key4:value4   
    }
]

2)对象结构java

{
    key1:value1,
    key2:value2,
    ...
}

主要的操做步骤以下:sql

1)将查询的条件从前端传以必定的方式传递到后台。数据库

2)后台根据查询条件从数据库中进行查找。json

3)创建JSONObject对象,将查询的加过按照必定的规则添加到对象中,并返回。数组

4)在前端中经过JavaScript脚本解析后台传过来的JSON对象。(其中一般先采起eval()函数,使得后台传回来的JSON对象被做为一段JavaScript脚本执行,而后对执行结果进行接下来的解析操做)。jsp

程序主体代码以下:函数

<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="java.text.*,org.json.JSONObject"%>
<%@page import="java.util.HashMap,java.util.List,java.util.ArrayList,java.util.Map,java.io.IOException"%>
<%@page import="java.io.IOException,java.sql.*"%>
<%@page import="dao.*,java.sql.ResultSet"%>
<%
    String tableName="car_trace";
    //开始查询数据库
    List jsonList = new ArrayList();
    try {
        ylx_db query_db = new ylx_db("test");    //这里用的是MySQL里的test数据库,能够根据须要改为本身的数据库名
        //构造sql语句,根据传递过来的查询条件参数
        String sql="select * from "+tableName;
        System.out.println(sql);
        ResultSet rs = query_db.executeQuery(sql);
        while (rs.next()) {
            List list = new ArrayList();
            //list.add(rs.getString(""));
            list.add(rs.getString("lng"));
            list.add(rs.getString("lat"));
            jsonList.add(list);
            System.out.println(rs.getString("lng")+","+rs.getString("lat"));
        }
        rs.close();
        query_db.close();
    } catch (SQLException sqlexception) {
        sqlexception.printStackTrace();
    }
    //////////数据库查询完毕,获得了json数组jsonList//////////
    //下面开始构建返回的json
    JSONObject jsonObj=new JSONObject();
    jsonObj.put("aaData",jsonList);    //以键值对的形式给出
    response.setContentType("text/html; charset=UTF-8");
    try {
        response.getWriter().print(jsonObj);
        response.getWriter().flush();
        response.getWriter().close();
    } catch (IOException e) {
        e.printStackTrace();
    }
%>
var url="get_gps.jsp";
                                alert(url);
                                $.post(url,{},function(data){          //获取传回来JSON字段data
                                var json=eval("("+data+")");          //执行eval函数,使JSON成为一个JavaScript对象,接下来就是解析了
                                var list=json.aaData;

                                var pointArray=new Array();    //储存点
                                for(var i=0;i<list.length;i++){
                                    var point=new BMap.Point(list[i][0],list[i][1]);
                                    pointArray.push(point);
                                }
                                alert(pointArray);
                                var polyline=new BMap.Polyline(pointArray, {strokeColor:"red", strokeWeight:6, strokeOpacity:0.5});
                                map.addOverlay(polyline);
                                alert("OK")    

以上皆为我的看法,望你们斧正。post

相关文章
相关标签/搜索