Ajax解析JSON

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
<%
/*
本题的思想:首先创建一个Ajax,同时创建一个文本框,当鼠标失去文本框的焦点,调用发送请求函数,然后转到servlet中,
在servlet中定义了Json的存储数据的方式,由servlet中输出流对象输出,回到jsp页面的发送函数,在其
中调用回调函数处理数据把内容加载到下拉列表中去显示出来,
*/
%>
<script>
//定义一个全局变量
var xmlHttpRequest;
/*
创建异步核心请求对象
*/
var createRequest = function(){
//判断是否是IE浏览器
if(window.XMLHttpRequest){
//非Ie浏览器
xmlHttpRequest = new XMLHttpRequest();
}else{
//ie浏览器
try {
//高版本Ie 4.0以上
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
//低版本
xmlHttpRequest = new ActionXObject("Microsoft.XMLHTTP");
}
}
};

/*
定义发送请求的函数
*/
var sendRequest = function(){
//判断核心请求对象是否已经存在
if(xmlHttpRequest==null){
createRequest();//不存在创建
}

//打开请求对象
xmlHttpRequest.open("post","jsonServlet",true);

//处理请求数据
xmlHttpRequest.onreadystatechange = callBack;
//发送请求对象
xmlHttpRequest.send();
};

//创建处理请求数据的函数
var callBack = function(){
if(xmlHttpRequest.status==200 && xmlHttpRequest.readyState==4){
var jsonString = xmlHttpRequest.responseText;
//alert(jsonString.student);//不能够取得到值,错误,应该先把字符串转换为json对象
//把后台接受到字符串转为js的json对象
var json = eval("("+jsonString+")");
//alert(json.student);正确
//获取 填充获取下拉列表对象
var select = document.getElementById("msg");
//清除下拉列表的数据
select.options.length = 0;
select.options.add(new Option("==学生信息如下==","-1",""));
var arr = json.student;

for(var i =0;i<arr.length;i++){
var option = new Option(arr[i].name+"--"+arr[i].age+"--"+arr[i].sex);
// 把构建的option对象添加到列表框中
select.options.add(option);
}

}
};
</script>
</head>
<body>
<!-- 当在文本框中鼠标失去焦点,下面的选择框中的值自动加载出来 -->
编号:<input type="text" id="requ" onblur="sendRequest();"><br/>
学生信息:<select id="msg" style="width:200px;" ></select>
</body>
</html>

//////////////////////////////以上是Jsp页面//////////////////////////////////////////////////////

///////////////////////////////以下是servlet页面//////////////////////////////////////////////////////////////

package com.test.json;

import java.io.IOException;
import java.io.PrintWriter;

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

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

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

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();

//存入Json数据
out.print("{‘student‘:[");
out.print("{‘name‘:‘小明‘,‘age‘:‘20‘,‘sex‘:‘男‘},");
out.print("{‘name‘:‘张三‘,‘age‘:‘30‘,‘sex‘:‘男‘},");
out.print("{‘name‘:‘丽丽‘,‘age‘:‘24‘,‘sex‘:‘女‘}");
out.print("]}");

out.flush();
out.close();
}

}

时间: 2024-11-08 19:13:01

Ajax解析JSON的相关文章

Jquery $.ajax 解析json

[ { "Type": "CangChu", "tm": "13℃", "hm": "70%", "im": "0lux", "ps": "1000hPa", "co2": "824ppm" } ] 接口返回的数据 $.ajax({ type: "post&q

ajax解析json值

$.ajax({ async: true, type: "post", url: "${ctxPath!}/pc/xxx/json?id=" + id, dataType: "json", success: function (data) { $("#shi").empty(); $.each(data.listcity, function (i, item) { var text = "<li onclick

利用fastjson解析json并通过js&amp;ajax实现页面的无跳转刷新

1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一个web项目,这是我的项目:我这里直接用servlet写的 注意导包,我这里到了很多无用的包,其实主要的包是下面几个: 这个三个包是必须的,其他都是开发基本web的常用包 3.创建一个domain: package com.keson.domain; import com.thoughtworks.

采用EXTJS ajax 解析返回json

片段主题:采用EXTJS ajax 解析返回json 知识分类:EXTJS 记录时间: 20150708 功能描述:点击图标根据ID ,AJAX提交后返回json 得到结果,显示图片. 学习心得:初学特别注意, 再想返回JSON 获得数据的情况下必须 使用ajax 的属性 success: function (data){} 来获取否者将只能的到返回的对象(object) ,然而并不会得到json数据(换句话说也就是得不到值). 片段代码: { iconCls : 'silk-config',

ajax提交json数据到后端C#解析

本文链接:https://blog.csdn.net/qq_22103321/article/details/78015920 前端提交json数据 $.ajax({ type: "post", url: url,//请求地址 data: JSON.stringify(data),//json数据,如{"key1":"value1","key2":"value2"} dataType: "json

ajax查询数据库,服务器传回json字符串,js解析json

服务器端获得要查询的东西,查询数据库,将查询的信息,以json字符串的形式返回给浏览器 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String departmentID=request.getParameter("departmentID"); DataBaseHandle dataBaseHandl

Struts2.5 利用Ajax将json数据传值到JSP

AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范

JQuery处理json与ajax返回JSON实例[转]

json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法. 一.JSON的一些基础知识. JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是键值对的形式(key:value). “[]”,标识数组,数组内部各个数据之间通过“,”分割,如[“AreaId”:”123”,”AreaId”:”345”]. 很多情况下是对象数组,那就是这样:  代码如下

jquery : eval() 解析json的注意

jquery eval解析JSON中的注意点介绍 来在:http://www.jb51.net/article/40842.htm 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形