使用JavaMail SMTP协议发送邮件

Ajax 获取JSON数据

Jimmy posted @ 2012年5月09日 00:39 in JSP+MySQL with tags Ajax;JSON , 6779 阅读

首先,介绍一下JSON。JSON(JavaScript Obect Notation)是一种轻量级的数据交换格式,易于人阅读和书写,也易于机器解析和生成。JSON建构与两种结构:

  • “名称/值”对的集合,在不同的语言中,它被理解为对象,记录,结构,字典,哈希表,有键列表或者关联数组。
  • 值的有序列表,大部分语言中,它被理解为数组

JSON具有以下这些形式:

对象是一个无序的,“名称/值”对的集合。一个对象以“{”始,“}”结束。每个名称后面跟一个“:”,“名称/值”对之间用“,”隔开。

数组是值的有序集合,一个数组以“[”开始,“]”结束,值之间用“,”隔开。

值可以是用双引号括起来的字符串,数值,true,false, null,对象或者数组。这些结构可以嵌套。

字符串是由双引号包围的任意数量的Unicode字符的集合,使用反斜线转义。一个字符即一个单独的字符串。

数值也与C或Java的数值非常类似,除去未曾使用的八进制与十六进制,除去一些编码细节。

getJSON(url,[data],[callback])是JQuery获取JSON数据格式的方法,其中“url”表示请求的地址,可以是生成JSON数据的页面或者JSON数据保存的文件,可选项data表示发送到服务器端的数据,其格式是“key/value”的键值对,另一个可选项“callback”表示加载成功时执行的回调函数。下面是在一个页面中用Ajax获取另一个页面生成的JSON数据的例子:

$.getJSON(
	"jsonGene.jsp", 
	function(data){
		$.each(data, function(index, values){
			$.each(values, function(key, value){
				$("#page").append(value + "<br>");
			});
		});
	});

生成JSON数据的JSP页面为:

<jsp:directive.page contentType="text/html; charset=utf-8"/>
<%@ page import="handle.DBlogic"%>
<%@ page import="handle.Seed"%>
<%@ page import="java.util.*"%>
<%
	DBlogic dblogic = new DBlogic();
	ArrayList<Seed> seedList = dblogic.getdata();
	String str = "[";
	int i;
	for(i=0; i<seedList.size()-1; i++){
		Seed seed = seedList.get(i);
		String temp = "{";
		temp += "\"patternTypes\": " + '"' + seed.getPatternTypes() + '"' + ",";
		temp += "\"pattern1\": " + '"' + seed.getPattern1() + '"' + ",";	
		temp += "\"label\": " + '"' + seed.getLabel()+ '"' + ",";
		temp += "\"value\": " + '"' + seed.getValue() + '"' + ",";
		temp += "\"anotherPattern1\": " + '"' + seed.getAnotherPattern1() + '"';
		temp += "},";
		str += temp;
	}
	Seed seed = seedList.get(i);
	String temp = "{";
	temp +=	"\"patternTypes\": " + '"' + seed.getPatternTypes() + '"' + ",";
	temp += "\"pattern1\": " + '"' + seed.getPattern1() + '"' + ",";	
	temp += "\"label\": " + '"' + seed.getLabel()+ '"' + ",";
	temp += "\"value\": " + '"' + seed.getValue() + '"' + ",";
	temp += "\"anotherPattern1\": " + '"' + seed.getAnotherPattern1() + '"';
	temp += "}";
	
	str += temp;
	str += "]";
	
	out.print(str);
 %>

 生成的JSON对象为:

[
    {
        "patternTypes": "PER,CIT",
        "pattern1": "1177_3_14_;",
        "label": "negPlace",
        "value": "0.5",
        "anotherPattern1": "knock.v DATE @"
    },
    {
        "patternTypes": "PER,CIT",
        "pattern1": "126_14_53_;14_53_24_;",
        "label": "isInCity",
        "value": "0.38888889",
        "anotherPattern1": "marry.v in.p"
    },
    {
        "patternTypes": "PER,CIT",
        "pattern1": "14_53_24_;",
        "label": "isInCity",
        "value": "0.5",
        "anotherPattern1": "marry.v in.p"
    }
]
一直没有获取到页面生成的JSON数据,因为将JSP页面写成了HTML格式,其生成的响应是一个HTML页面,不是格式正确JSON数据,自然获取不到了。
 
ref:
http://www.bejson.com 提供了JSON数据的在线校验,可以查看程序生成的JSON数据格式是否正确
写前台开发的时候,Firefox的firebug插件很好用,可以查看页面发出的请求以及得到相应的数据,对脚本的调试很有帮助。
Avatar_small
呵呵 说:
2015年9月07日 20:56

不能把牛奶

Avatar_small
AP SSC fa 3 Model Pa 说:
2022年9月08日 07:35

Formative Assessment means not only an examination, it includes various aspects such as Examination in completed lessons, Reflections, Project work done on the allotted topic and Self also Prepared notes etc. AP SSC fa 3 Model Paper Candidates of Telugu Medium, English Medium & Urdu Medium of the AP State can download the AP 10th Class FA 4 Model Paper 2023 Pdf with answers for the regular exams conducted by the Directorate of Government Examinations, Andhra Pradesh.

Avatar_small
seo service london 说:
2024年1月15日 23:47

Excellent website you have here, so much cool information!.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter