利用json实现数据传输

  JSON:JavaScript 对象表示法(JavaScript Object Notation)。

  JSON 是存储和交换文本信息的语法。类似 XML。

  JSON 比 XML 更小、更快,更易解析。

   JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

使用json来传输单个数据和数组

新建一个数据层:

package com.bean;

public class Dog {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getCategory() {
        return category;
    }
    public void setCategory(String category) {
        this.category = category;
    }
    private int age;
    private String category;
}

实现单个数据传输时:

package com.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONObject;

import com.bean.Dog;

/**
 * Servlet implementation class Testjson1
 */
@WebServlet("/testjson1")
public class Testjson1 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Testjson1() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        //摸拟从数据库中查询
        Dog d = new Dog();
        d.setName("阿黄");
        d.setAge(2);
        d.setCategory("哈士奇");

        JSONObject obj = new JSONObject();
        obj.put("name", d.getName());
        obj.put("age", d.getAge());
        obj.put("category", d.getCategory());

        JSONObject object = new JSONObject();
        object.put("dog1", obj);
        response.getWriter().append(object.toString());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript"src="js/jquery-1.11.1.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
    $("#d1").click(function(){
        $.ajax({
            url:"testjson1",
            data:{},
            type:"POST",
            dataType:"JSON",
            success:function(httpdata){
                $("#d2").append("<p>"+httpdata.dog1.name+"</p>");
                $("#d2").append("<p>"+httpdata.dog1.age+"</p>");
                $("#d2").append("<p>"+httpdata.dog1.category+"</p>");

            }
        });
    });
});
</script>
</head>
<body>
<div id="d1">123123123</div>

<div id="d2"></div>
</body>
</html>

效果如下:

传输一组数据时:

package com.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONArray;
import org.json.JSONObject;

import com.bean.Dog;

/**
 * Servlet implementation class Testjson2
 */
@WebServlet("/testjson2")
public class Testjson2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Testjson2() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        Dog d1 = new Dog();
        d1.setName("狗1");
        d1.setAge(1);
        d1.setCategory("品种1");
        Dog d2 = new Dog();
        d2.setName("狗2");
        d2.setAge(2);
        d2.setCategory("品种2");
        Dog d3 = new Dog();
        d3.setName("狗3");
        d3.setAge(3);
        d3.setCategory("品种3");

        ArrayList<Dog> list = new ArrayList<Dog>();
        list.add(d1);
        list.add(d2);
        list.add(d3);

        JSONArray arr = new JSONArray();

        for(Dog d:list){

            //System.out.println(d.getName());
            JSONObject temp = new JSONObject();
            temp.put("name", d.getName());
            temp.put("age", d.getAge());
            temp.put("category", d.getCategory());
            arr.put(temp);
        }
        JSONObject object = new JSONObject();
        object.put("dog1", arr);

        //response.getWriter().append(obj.toString());
        response.getWriter().append(object.toString());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript"src="js/jquery-1.11.1.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
    $("#d1").click(function(){
        $.ajax({
            url:"testjson2",
            data:{},
            type:"POST",
            dataType:"JSON",
            success:function(httpdata){

                for(var i=0;i<httpdata.dog1.length;i++){

                    $("#d2").append("<p>"+httpdata.dog1[i].name+"</p>");
                    $("#d2").append("<p>"+httpdata.dog1[i].age+"</p>");
                    $("#d2").append("<p>"+httpdata.dog1[i].category+"</p>");

                }

            }
        });
    });
});
</script>
</head>
<body>
<div id="d1">123123123</div>

<div id="d2"></div>
</body>
</html>

实现效果如下:

时间: 2024-10-22 06:58:02

利用json实现数据传输的相关文章

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

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(我们以下载图片为例(注释中详细

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

首先,JSON有两种结构: 1)数组结构 [ { key1:value1, key2:value2 }, { key3:value3, key4:value4 } ] 2)对象结构 { key1:value1, key2:value2, ... } 主要的操作步骤如下: 1)将查询的条件从前端传以一定的方式传递到后台. 2)后台根据查询条件从数据库中进行查找. 3)建立JSONObject对象,将查询的加过按照一定的规则添加到对象中,并返回. 4)在前端中通过JavaScript脚本解析后台传过

Ajax提高篇(5)使用JSON 进行数据传输

在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.Ajax 的另一种有用的数据格式 JavaScript Object Notation(JSON),使用它更轻松地在应用程序中移动数据和对象. 在许多异步应用程序中如何恰当地使用纯文本和简单的名称/值对.可以将数据组合成下面这样的形式: mailto:firstName=Brett&amp;amp;lastName=McLaughlin&amp;amp;[email protected] 这样就行了,不需要再做什么

使用JSON进行数据传输的总结

一.选择的意义 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.为了更好的使用ajax, 我们将学习一种有用的数据格式 JavaScript Object Notation (JSON ),以及如何使用它更轻松地在应用程序中移动数据和对象.JSON 是一种简单的数据交换格式,在某些方面,它的作用与XML 非常类似,但比XML 更为简单,JSON 的语法简化了数据交换的难度,而且提供了一种 伪对象 的方式. Java 的对象 < - >JavaScript 对象(js