码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-04-24 00:48:08      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

首先,JSON有两种结构:

1)数组结构

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

2)对象结构

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

主要的操作步骤如下:

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

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

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

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

程序主体代码如下:

<%@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")    

以上皆为个人见解,望大家斧正。

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

标签:

原文地址:http://www.cnblogs.com/luohuan/p/5426131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!