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 相关文章推荐
Jquery调用webService远程访问出错的解决方法
May 21 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
Sep 09 Javascript
JavaScript的设计模式经典之代理模式
Feb 24 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
Jul 21 Javascript
详解React Native网络请求fetch简单封装
Aug 10 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
May 22 Javascript
vue 中滚动条始终定位在底部的方法
Sep 03 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
Array.filter中如何正确使用Async
Nov 04 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
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
Js组件的一些写法
2010/09/10 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
Python算法应用实战之栈详解
2017/02/04 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
python向图片里添加文字
2019/11/26 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
预备党员入党自我评价范文
2014/03/10 职场文书
房屋委托书范本
2014/04/04 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
土地租赁协议书
2015/01/29 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书