JSON 学习之完全手册 图文

 更新时间:2007年05月29日 00:00:00   作者:  
JSON 学习之完全手册 图文
第一章 何谓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://www.jb51.net" },
{ name:"John", email:"john@gmail.com", homepage:"http://s.jb51.net" },
{ name:"Peggy", email:"peggy@gmail.com", homepage:"http://tools.jb51.net" }]


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

复制代码 代码如下:

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

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

第二章 JSON格式

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

点击在新窗口中浏览此图片

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

点击在新窗口中浏览此图片

字符串的定义和C或Java基本一致。
点击在新窗口中浏览此图片

数字的定义也和C或Java基本一致。
点击在新窗口中浏览此图片


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

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

Demo:http://demo.jb51.net/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中如何使用cookie实现记住密码功能及cookie相关函数介绍

    JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍

    cookie是网站设计者放置在客户端(浏览器)的小文本文件,cookie不仅能够实现保存密码功能,还可以通过cookie保存最近浏览记录增加用户体验。本文给大家介绍js使用cookie实现记住密码功能及cookie相关函数讲解,感兴趣的朋友一起看看吧
    2016-11-11
  • display和visibility的区别示例介绍

    display和visibility的区别示例介绍

    这篇文章主要介绍了display和visibility的区别,需要的朋友可以参考下
    2014-02-02
  • 使用SVG基本操作API的实例讲解

    使用SVG基本操作API的实例讲解

    下面小编就为大家带来一篇使用SVG基本操作API的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • javascript实现捕捉键盘上按下的键

    javascript实现捕捉键盘上按下的键

    JavaScript取得按下键盘的键是哪个,通过创建一个event.keyCode对象,可有效获取键盘上的键,运行代码后,点击键盘上的任意键,网页上显示你按下的是哪个键。
    2015-05-05
  • JavaScript中异步与回调的基本概念及回调地狱现象

    JavaScript中异步与回调的基本概念及回调地狱现象

    这篇文章主要介绍了JavaScript中异步与回调的基本概念,以及回调地狱现象,本文主要介绍了异步和回调的基本概念,二者是JavaScript的核心内容,需要所有热爱JS的小伙伴深入了解,需要的朋友可以参考下
    2022-07-07
  • JavaScript利用crypto模块实现加解密

    JavaScript利用crypto模块实现加解密

    crypto模块提供了加密功能,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。本文将利用它实现加解密算法,需要的可以参考一下
    2023-02-02
  • Threejs实现滴滴官网首页地球动画功能

    Threejs实现滴滴官网首页地球动画功能

    这篇文章主要介绍了Threejs实现滴滴官网首页地球动画效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • javascript之with的使用(阿里云、淘宝使用代码分析)

    javascript之with的使用(阿里云、淘宝使用代码分析)

    这篇文章主要介绍了javascript之with的使用(阿里云、淘宝使用代码分析),主要是发现了阿里云使用了这段比较有B格的代码,所以说下这个怎么样
    2016-10-10
  • js动态生成指定行数的表格

    js动态生成指定行数的表格

    下面用js实现可以生成用户所需行数的表格,具体步骤及效果图如下,感兴趣的朋友,可以参考下哈,希望对大家有所帮助
    2013-07-07
  • js前端实现多图图片上传预览的两个方法(推荐)

    js前端实现多图图片上传预览的两个方法(推荐)

    下面小编就为大家带来一篇js前端实现多图图片上传预览的两个方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论