JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
JSON的结构基于下面两点
- 1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
- 2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的
js代码
var flag;//后台操作返回值
var url;//req.open调用的地址
var tip;//等待提示
var successTip;//成功返回提示
var faildTip;//失败返回提示
var successUrl;//成功发挥后下一个连接地址
var faildUrl;//失败返回后下一个连接地址
function jsonUse(surl,stip,ssuccessTip,sfaildTip,ssuccessUrl,sfaildUrl){
var flag = false;
url=surl;
tip=stip;
successTip= ssuccessTip;
faildTip = sfaildTip;
successUrl = ssuccessUrl;
faildUrl = sfaildUrl;
alert(url);
alert(tip);
alert(faildUrl);
getXMLObject();
}
function getXMLObject(){
alert("aaa");
if(!window.ActiveXObject){
req = new XMLHttpRequest();
} else{
req = new ActiveXObject("Microsoft.XMLHttp");
}
req.onreadystatechange = callback;
req.open("get",url);
req.send();
}
function callback(){
//1-正加载 2-加载完 3-交互中 4-完成
if(req.readyState == 4){
if(req.status == 200){
alert("callback");
parseMessage();
alert("callback3");
}else{
alert("callback2");
document.innerTip=tip;
}
}
}
function parseMessage() {
var result = req.responseText;
eval("var j = "+result);
alert(j.empIDExist);
if(j.empIDExist){
alert("parseMessage");
alert(successTip);
flag = true;
alert(successUrl);
if(successUrl != 'undefined' && successUrl != '')
{
window.location.href=successUrl;
}
}else{
flag = false;
alert(faildTip);
if(faildUrl != 'undefined' && faildUrl != '')
{
window.location.href=faildUrl;
}
}
return flag;
}
调用
xxx.JSP
<SCRIPT language="javascript">
function backup(){
if(confirm("您确定要备份数据吗?" )){
jsonUse('../employee/backupMysql.do','正在备份','备份成功','备份失败','../employee/getBackup.do','');
}
}
</SCRIPT>
JSON传值页面
yy.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%response.setHeader("Cache-Control","no-cache"); %>
{
flag:<%=request.getAttribute("flag") %>
}
由上面例子总结下
- JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
- JSON 帮助分离了验证数据和逻辑。
- JSON 帮助为 Web 应用程序提供了 Ajax 的本质。