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

首先,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")    

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

时间: 2024-08-03 15:24:21

利用JSON进行前台和后端的数据传输的相关文章

利用jQuery传送json格式的字符串,后端用ashx文件来接收

在Default.aspx里面,我们会透过javascript建立两个物件,分别有Name和Age的属性,再透过Array的方式,将这两个物件塞到Array里面去.使用Ajax内建的$.ajax API,我们可以把url,type,data,sucess等几个属性先设定好,其中要注意到当我们想透过json格式来传递资料的时候,我们可以用JSON.stringify()的方法来把想要传送的阵列资料先转换成json格式. 1 <%@ Page Language="C#" AutoEv

asp.net中利用JSON进行增删改查中运用到的方法

//asp.net中 利用JSON进行操作, //增加: //当点击"增加链接的时候",弹出增加信息窗口,然后,在窗体中输入完整信息,点击提交按钮. //这里我们需要考虑这些:我会进行异步提交,使用jquery中的方法,$.post("网页名",JSON,callback); //JSON的写法:{"name":name,"id":id},那我们对其进行假设,比方说,表单中的textbox很多,需要我们填写的信息 //也很多,

利用json生成excel表格

起因: 之前利用反射生成excel导出,这个组件本来挺好用的,结果,坑爹的本地研发没有问题,生产环境却有问题.不知道什么原因直接导致服务重启,还重新加载类,直接导致jvm的永久区内存溢出. 异常: java.lang.OutOfMemoryError: PermGen space 说明: Perm空间被占满.无法为新的class分配存储空间而引发的异常.这个异常以前是没有的,但是在Java反射大量使用的今天这个异常比较常见了.主要原因就是大量动态反射生成的类不断被加载,最终导致Perm区被占满.

利用json获取天气信息

天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温,最低温,城市名字. 我的布局是通过一个button获取城市名字,最高温,最低温.main.xnl代码例如以下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo

利用nginx反向代理,后端Web如何获取真实客户ip

利用nginx反向代理,后端Web如何获取真实客户端ip 一.nginx反向代理nginx,后端的nginx该如何配置才能获取到客户端的真实IP地址呢. 1.首先需要在nginx代理服务器上的配置文件nginx.conf上的 location 中添加一行参数: proxy_set_header  X-Real-IP  $remote_addr; 重启nginx服务 2.对后面的nginx进行配置 vim /usr/local/nginx/conf/nginx.conf 加入下面参数: set_r

Jquery利用JSON数组创建表格

$(function () { var json = [ { "name": "张三", "age": "20", "gender": "男" }, { "name": "李四", "age": "21", "gender": "女" }, { "name&q

【MVC架构】——怎样利用Json在View和Controller之间传递数据

在MVC架构中,尽管非常多东西和三层非常相似,可是也有非常大的差别.就比方传递数据.在三层架构中,传递数据就仅仅要一层返回,另外一层用同样类型的变量来接收即可了.在MVC中,事实上原理是一样的,Controller中的方法返回Json字符串.然后View来接收.或者反过来,不同的就是这之间须要一个序列化和反序列化的过程. 本文就简介利用Json在View和Controller之间传递数据的一个方面,大致从双方面介绍,一是什么是Json,二是怎样实现. 什么是Json 一.概念 百度百科说:JSO

Java学习总结(随笔)——利用JSON解析实现网络下载

利用JSON实现网络下载1.下载json字符串:(1)将网址封装到URL中:URL url=new URL("网址");(2)利用url打开HTTP: HttpURLConnection conn= (HttpURLConnection)ulr.openConnection();(3)开始连接:conn.connect();(4)利用输入流读取网络数据:(5)将下载的数据转换成字节数组:2.下载所需资源:与上述步骤相同,最后利用输出流,写入到目标地址例1(我们以下载图片为例(注释中详细

spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500:no convertter for return value of type

问题描述 spring Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson spring boot 新增配置解决后台返回 json 到前台中文乱码之后,出现返回json数据报错:no convertter for return value of type 注释掉解决中文乱码的问题之后返回对象json正常 Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWr