json入门(1)
json是JavaScript Object Notation的简称;在web系统开发中与AJAX相结合用的比较多。
在ajax中数据传输有2中方式:文本类型,常用responseText属性类获取;XML类型,常用responseXML属性来获取
返回文本类型,处理起来比较简单,处理XML在前台处理比较麻烦;但是在系统开发中返回简单的文本类型常不能满足
需求,返回XML在前台处理起来又比较复杂;
在此情况下,用json处理起来就比较方便;关于json和XML的优缺点比较,网上说的比较多,在此我就谈写自己在使用
过程中的感受:XML权威不可否认,但是在前台页面处理复杂,不能版本的浏览器实现XML的解析方式也有所差别;json在这
方面有优势,json就是利用javascrpt语言的特性,把从服务器端返回的字符串转换成js对象;
在javascrpt中可以用如下方式定义对象:
var obj={name:"hello world"};
等价与
var s="{name:'hello world'}";
var obj=eval("("+s+")");
如果要获取name属性的值,只需调用obj["name"]即可。如果服务器端返回的是<name>hello world</name>,则要取的name属性
的值就复杂的多;如果返回的XML格式的数据再复杂些,处理起来更麻烦。而json就是把服务器端返回的文本数据,在前台利用
javascript语言的特性,把文本数据转换成js对象;
如下:
服务器端:
server.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("{name:'hello word',obj:{age:11}}");
%>
</body>
</html>
客户端:
client.html
不相关的代码省略不写了
var strResult = objXMLReq.responseText;
变量strResult的数值就是"{name:'hello word',obj:{age:11}}";
利用javascrpt语言的特性:
strResult=eval("("+strResult+")");
这样strResult就转换成了js对象了;
如果你要获取name和age的数值,只需要:
var name=strResult["name"];
var age=strResult["obj"]["age"];
比处理XML数据要方便的多;
文笔不好,请大家见量!json相关内容回陆续推出!
下载附件:
/Files/hulizhong/json.pdf