利用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

相關文章
相關標籤/搜索