用JQuery做前端页面与后台程序交互时,JSON起的作用太大了,记录JQuery与之相关的一些东西.
与JSON处理相关的几个函数:
1.将字符串转换为JSON对象
a.JavaScript通过eval来转换,但这种方式不安全,不推荐使用。
var jsonObj=eval(jsonStr);
b.JSON.parse方式,但ie6,ie7不支持,需另外去http://www.json.org/js.html下载一个js扩展才可以。
var jsonObj=JSON.parse(jsonStr);
c.JQuery通过parseJSON函数,更安全
var jsonObj=JQuery.parseJSON(jsonStr);
2.将JSON对象转为字符串
var jsonStr = JSON.stringify(jsonObj);
3. getJSON(),这个函数通过get请求得到json数据
jQuery.getJSON( url, data, callback )
·url用于提供json数据的地址页
data(Optional)用于传送到服务器的键值对
·callback(Optional)回调函数,json数据请求成功后的处理函数
具体参考:
http://www.w3school.com.cn/jquery/ajax_getjson.asp
4..GET,.POST都可以直接传送或接收JSON字符串。
....
JSON展示:
例1.
[{ "ret": "c: /tmp/11gR2", "type": "DIR"},{ "ret": "c: /tmp/xcl.log", "type": "FILE"},{ "ret": "c: /tmp/soft", "type": "DIR"}]
图形化展开后的视图:
{"name":"xcl.log","type":"FILE","fileversion":[
{"version":1,"backupTime":100,"createtime":80,"modifytime":70,"size":"10m"},
{"version":2,"backupTime":120,"createtime":50,"modifytime":80,"size":"50m"}]}
展示JSON使用的一个例子:
<!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=gb2312">
<title>JSON DEMO</title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<SCRIPT type="text/javascript">
$(document).ready(function(){
function demo1()
{
//字符串
var jsonStr = '[{ "ret": "c: /tmp/11gR2", "type": "DIR"},{ "ret": "c: /tmp/xcl.log", "type": "FILE"},{ "ret": "c: /tmp/soft", "type": "DIR"}]';
//将字符串转换为JSON对象
//JavaScript通过eval来转换,但这种方式不安全,不推荐使用。
// var jsonObj=eval(jsonStr);
//JSON.parse方式,但ie6,ie7不支持,需另外去http://www.json.org/js.html下载一个js扩展才可以。
var jsonObj=JSON.parse(jsonStr);
//JQuery通过parseJSON函数,更安全
var jsonObj=jQuery.parseJSON(jsonStr);
//使用each进行遍历JSON数组
var info = "length="+jsonObj.length;
$.each(jsonObj, function (n, value) {
info += "<br/>"+value.type + ' : ' + value.ret
});
$('#JsonInfo_div').html(info);
}
function demo2()
{
//直接将一个复杂的JSON赋给JS变量
var jsonObj ={"name":"xcl.log","type":"FILE","fileversion":[
{"version":1,"backupTime":100,"createtime":80,"modifytime":70,"size":"10m"},
{"version":2,"backupTime":120,"createtime":50,"modifytime":80,"size":"50m"}]}
var info = "name="+jsonObj.name;
info += "<br/>"+"length="+jsonObj.fileversion.length;
$.each(jsonObj.fileversion, function (n, value) {
info += "<br/> version:"+jsonObj.fileversion[n].version + ' : size:' + jsonObj.fileversion[n].size;
});
$('#JsonInfo2_div').html(info);
$('#JsonDemo21_div').html(JSON.stringify(jsonObj));
}
demo1();
demo2();
});
</SCRIPT>
</head>
<body>
<h2> JSON DEMO</h2>
<br/>
demo1:<br/>
<P id="JsonInfo_div" style='color:red;padding-left:65px;'></P>
<br/>
demo2:<br/>
<P id="JsonDemo21_div" style='color:blue;padding-left:65px;'></P>
<br/>
<P id="JsonInfo2_div" style='color:blue;padding-left:65px;'></P>
<br/>
</body>
</html>
效果:
MAIL: xcl_168@aliyun.com
BLOG: http://blog.csdn.net/xcl168