JSON 学习之完全手册 图文


Posted in Javascript onMay 29, 2007

第一章 何谓JOSN
JSON:JavaScript Object Notation

是Javascript (jscript、ECMA Javascript等)描述对象数据(各种元数据其实也是最简单的对象)的一种数据结构。概念和用法均类似于Hash(哈希表)或者关联数组。

JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

最简单的JSON例子如下:

[ 
{ name:"Michael", email:"17bity@gmail.com", homepage:"https://3water.com" }, 
{ name:"John", email:"john@gmail.com", homepage:"http://s.3water.com" }, 
{ name:"Peggy", email:"peggy@gmail.com", homepage:"http://tools.3water.com" }]

下面这个例子描述了一个邮件联系人列表,在javascript用eval 运行将获得一个maillist的对象实体,那么就可以用javascript做进一步的操作。

var maillist = [ 
{ name:"Michael", email:"17bity@gmail.com", homepage:"https://3water.com" }, 
{ name:"John", email:"john@gmail.com", homepage:"http://s.3water.com" }, 
{ name:"Peggy", email:"peggy@gmail.com", homepage:"http://tools.3water.com" } 
]

那么就可以用javascript做进一步的操作。

第二章 JSON格式

JSON的基本格式如下,图片来自json.org:
对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。

JSON 学习之完全手册 图文

数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。

JSON 学习之完全手册 图文

字符串的定义和C或Java基本一致。
JSON 学习之完全手册 图文

数字的定义也和C或Java基本一致。
JSON 学习之完全手册 图文

第三章 应用 trimpath Template 进行 JSON 模版制作

Trimpath Template 是一个用来解析Json数据,生成网页代码的轻量级JS代码。

Demo:http://demo.3water.com/js/js_template/test.htm

trimpath.template基于JavaScript的,跨浏览器,采用APL/GPL开放源代码协议的,可以让你轻松进行基于模板编程方式的纯JS引擎。

http://code.google.com/p/trimpath/

它有如下的特点:

1、采用标准的JavaScript编写,支持跨浏览器
2、模板语法类似于:FreeMarker,Velocity,Smarty
3、采用简易的语言来描述大段的字串以及Dom/DHTML操作
4、可以很方便的解析XML文件格式的数据到指定模板。

采 用该引擎,可以让它来完全处理View方面的事情,服务端Module直接输出Data就可以。让你的MVC模式连成一体,而且由于View由浏览器来处 理,大大减少了服务器的负担,用来构建Ajax技术的网络信息系统应用是一个非常好的选择。

这是一个简单小巧的 模板工具类, 用来帮助使用者快速的拼装出所需要的字符串.

简单说明: 模板中 #{ ... /} 之间的数据将被 作为js脚本执行, 而其中VAR关键字代表的就是 seed 的值(从外部传入的一个变化的值).
模板分成两部分来执行, compile 和 run. #{..../}之间的部分在run期间被执行,
#{#...../} 之间的部分在编译期执行.编译期执行的代码中不能传入seed.
更多的说明也不用再写了,因为确实很简单的功能 呵呵.

原理: 实际上就是 利用传入的参数对 模板字符串中 #{ .../} 的部分进行替换.(对 #{ .../}之间的部分执行eval(),之后再替换).

如果你对模版技术感兴趣,也可以通过研究代码来获得更多的启发。

总结

作为JAVASCRIPT的默认数据格式,json在进行Ajax操作时显得非常方便,而且相对XML文件小了很多。因而在网速不甚理想的,系统耦合度比较高等情况下有更好的表现。

但是XML做为一种可以自描述的格式,在全世界有着更广泛的应用。所以当系统要求跨平台,跨语言时,采用XML仍旧是最好的选择。  

Javascript 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
jQuery AjaxQueue改进步骤
Oct 06 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 Javascript
js中的异常处理try...catch使用介绍
Sep 21 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
JavaScript操作选择对象的简单实例
May 16 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
Bootstrap模态框插入视频的实现代码
Jun 25 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
JS使用setInterval实现的简单计时器功能示例
Apr 19 Javascript
详解Vue依赖收集引发的问题
Apr 22 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
Aug 13 Javascript
Highslide.js是一款基于js实现的网页中图片展示插件
Mar 30 #Javascript
JScript的条件编译
May 29 #Javascript
javascript学习网址备忘
May 29 #Javascript
?牟┛途W扣了一??效果出?? target=
May 27 #Javascript
JS获取scrollHeight问题想到的标准问题
May 27 #Javascript
如何实现动态删除javascript函数
May 27 #Javascript
javascript实现 在光标处插入指定内容
May 25 #Javascript
You might like
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
php中http与https跨域共享session的解决方法
2014/12/20 PHP
php解析xml方法实例详解
2015/05/12 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
Angular6新特性之Angular Material
2018/12/28 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
vue移动端屏幕适配详解
2019/04/30 Javascript
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
基于python的Paxos算法实现
2019/07/03 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
python实现猜拳游戏
2020/03/04 Python
Python中格式化字符串的四种实现
2020/05/26 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
水产养殖学应届生求职信
2013/09/29 职场文书
考博专家推荐信模板
2013/12/02 职场文书
初三化学教学反思
2014/01/23 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
报到证办理个人委托书
2014/10/06 职场文书