json2.js的初步学习与了解


Posted in Javascript onOctober 06, 2011

json2.js的初步学习与了解
1.)该js的下载地址是:http://www.json.org/json2.js
2.)在页面中引用该脚本:<script type="text/javascript" src="js/json2.js"></script>
3.)示例演示一:

//直接声明json数据结构 
var myJSONObject = {"bindings": [ 
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, 
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, 
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} 
] 
};

这个例子中,创建了一个对象,它只包含一个成员“bindings”。“bindings”是一个包含了3个对象的数组,而这每个对象都有"ircEvent"、"method"和"regex"3个成员。
这些成员可以用“.”或subscript 操作得到。
如:myJSONObject.bindings[0].method // "newURI"
myJSONObject.bindings[1].deleteURI // "newURI"
//声明字符串,可对比一下json文本与我们正常文本的区别
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]';
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]';
我们可以使用eval()函数调用JavaScript的编译器把JSON文本转变成对象。因为JSON是JavaScript的一个确切的子集,编译器可以正确地解析JSON文本,然后生成一个对象结构。
//调用eval函数转换为json对象,
var myE = eval(normalstring);
//将json对象转换为字符串
var text = JSON.stringify(myE);
//对比转换后的json文本与声明的文本区别
document.writeln('转换后的json文本:'+text+'<br><br>声明的json格式文本 '+jsontext+'<br><br>声明的普通格式文本 '+normalstring+'<br><br>');
结果如下:
转换后的json文本:[{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]
声明的json格式文本 [{"persons":[{"name":"jordan","sex":"m","age":"40"},{"name":"bryant","sex":"m","age":"28"},{"name":"McGrady","sex":"m","age":"27"}]}]
声明的普通格式文本 [{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]
小结:转换后的json文本和声明的json格式文本内容是相同的。
//当安全比较重要的时候使用JSON解析就好一些。JSON解析只会识别JSON文本并且它更安全,下面调用json的parse函数对文本数据转换生成json数据结构
var myData = JSON.parse(jsontext);
完整的文件如下(区别:myJSONObject,jsontext,normalstring的不同):
<%@ page language="java" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<script type="text/javascript" src="js/json2.js"></script> 
</head> 
<body> 
<script> 
var normalstring='[{persons:[{name:"jordan",sex:"m",age:"40"}, {name:"bryant",sex:"m",age:"28"}, {name:"McGrady",sex:"m",age:"27"} ]}]'; 
var jsontext='[{"persons":[{"name":"jordan","sex":"m","age":"40"}, {"name":"bryant","sex":"m","age":"28"}, {"name":"McGrady","sex":"m","age":"27"} ]}]'; 
var myJSONObject = {"bindings": [ 
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, 
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, 
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} 
] 
}; 
//调用eval函数转换为json对象, 
var myE = eval(normalstring); 
//将json对象转换为字符串 
var text = JSON.stringify(myE); 
//对比转换后的json文本与声明的文本区别 
document.writeln('转换后的json文本:'+text+'<br><br>声明的json格式文本 '+jsontext+'<br><br>声明的普通格式文本 '+normalstring+'<br><br>'); 
//JSON解析 
var myData = JSON.parse(jsontext); 
</script> 
</body> 
</html>

4.)示例演示二:
//下面是对json对象的增删查改操作 
<%@ page language="java" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<script type="text/javascript" src="js/json2.js"></script> 
</head> 
<body> 
<script> 
//声明json对象 
var jsonObj2={persons:[ 
{name:"jordan",sex:"m",age:"40"}, 
{name:"bryant",sex:"m",age:"28"}, 
{name:"McGrady",sex:"m",age:"27"} 
]}; 
var persons=jsonObj2.persons; 
var str=""; 
var person={name:"yaoMing",sex:"m",age:"26"}; 
//以下为json对象的操作,去掉注释可以查看操作结果 
jsonObj2.persons.push(person);//数组最后加一条记录 
jsonObj2.persons.pop();//删除最后一项 
jsonObj2.persons.shift();//删除第一项 
jsonObj2.persons.unshift(person);//数组最前面加一条记录 只要适合Javascript的方法都是可以用在JSON对象的数组中的!所以还有另外的方法splice( )进行crud操作! //删除 
jsonObj2.persons.splice(0,2);//开始位置,删除个数 
//替换不删除 
var self={name:"tom",sex:"m",age:"24"}; 
var brother={name:"Mike",sex:"m",age:"29"}; 
jsonObj2.persons.splice(1,0,self,brother,self);//开始位置,删除个数,插入对象 
//替换并删除 
jsonObj2.persons.splice(0,1,self,brother);//开始位置,删除个数,插入对象 
for(var i=0;i<persons.length;i++){ 
var cur_person=persons[i]; 
str+=cur_person.name+"'sex is "+cur_person.sex+" and age is "+cur_person.age+"<br><br>"; 
} 
document.writeln(str); 
//转换为json文本 
var myjsonobj = JSON.stringify(jsonObj2); 
document.writeln(myjsonobj); 
document.writeln(persons.length); 
</script> 
</body> 
</html>
Javascript 相关文章推荐
JS 实现完美include载入实现代码
Aug 05 Javascript
JavaScript中的变量声明早于赋值分析
Mar 01 Javascript
Javascript的时间戳和php的时间戳转换注意事项
Apr 12 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
js中unicode转码方法详解
Oct 09 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
JavaScript闭包的简单应用
Sep 01 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
基于vue.js无缝滚动效果
Jan 25 Javascript
通过vue-cli3构建一个SSR应用程序的方法
Sep 13 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 #Javascript
event.X和event.clientX的区别分析
Oct 06 #Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
Oct 06 #Javascript
jQuery EasyUI API 中文文档 - Form表单
Oct 06 #Javascript
基于jQuery的模仿新浪微博时间的组件
Oct 04 #Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 #Javascript
通过JavaScript控制字体大小的代码
Oct 04 #Javascript
You might like
PHP的cURL库简介及使用示例
2015/02/06 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
python 爬虫请求模块requests详解
2020/12/04 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
说明书范文
2014/05/07 职场文书
经营管理策划方案
2014/05/22 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
电力培训心得体会
2014/09/02 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
同意报考公务员证明
2015/06/17 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python