JSON学习笔记

 更新时间:2008年06月10日 21:33:40   作者:  
JSON我就要来了

JSON定义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
JSON的结构基于下面两点

1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。
这里假设我们需要创建一个User对象,并具有以下属性
用户ID
用户名
用户Email
您可以使用以下JSON形式来表示User对象:
JavaScript代码
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
然后如果把这一字符串赋予一个JavaScript变量,那么就可以直接使用对象的任一属性了。
完整代码:
JavaScript代码
复制代码 代码如下:

<script>
var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
alert(User.Name);
</script>

实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName:
JavaScript代码
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}
完整代码:
JavaScript代码
复制代码 代码如下:

<script>
var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"};
alert(User.Name.FirstName);
</script>

现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。
下面代码演示了使用JSON形式定义这个用户列表:
JavaScript代码
复制代码 代码如下:

[
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
]

完整代码:
JavaScript代码
复制代码 代码如下:

<script>
var UserList = [
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
];
alert(UserList[0].Name.FirstName);
</script>

事实上除了使用"."引用属性外,我们还可以使用下面语句:
JavaScript代码
复制代码 代码如下:

alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);

现在读者应该对JSON的使用有点认识了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
小节:
本文通过一个实例演示,初步了解了JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。

参考资料:
http://www.json.org/
http://www.ibm.com/developerworks/cn/web/wa-lo-json/?ca=drs-tp3308#N1010D

相关文章

  • json的前台操作和后台操作实现代码

    json的前台操作和后台操作实现代码

    通常情况下,json的在项目中的应用都是在后台把数据传到前台,然后前台再获取json中的数据.
    2012-01-01
  • JS解析后台返回的JSON格式数据实例

    JS解析后台返回的JSON格式数据实例

    今天小编就为大家分享一篇JS解析后台返回的JSON格式数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • json简单介绍

    json简单介绍

    我们知道AJAX技术能够使得每一次请求更加迅捷,对于每一次请求返回的不是整个页面,也仅仅是所需要返回的数据。
    2008-06-06
  • 半个小时学json(json传递示例)

    半个小时学json(json传递示例)

    这篇文章主要介绍了半个小时学json(json传递示例),主要包括一维数组与二维数组,需要的朋友可以参考下
    2016-12-12
  • ASP Json Parser修正版

    ASP Json Parser修正版

    之前因为要用json,在网上,json Generator就不少,但是,parser鲜有后来,在一个老外的启发下,写了一个praser,其实超简单,就是利用了JS的eval来parse,然后,把对象再返回给vbscript代码。
    2009-12-12
  • 改进版通过Json对象实现深复制的方法

    改进版通过Json对象实现深复制的方法

    改进版通过Json对象实现深复制的方法,需要的朋友可以参考下
    2012-10-10
  • JavaScript中的JSON 中文版翻译

    JavaScript中的JSON 中文版翻译

    JSON是JavaScript面向对象语法的一个子集。由于JSON是JavaScript的一个子集,因此它可清晰的运用于此语言中。
    2009-10-10
  • JavaScript 解析Json字符串的性能比较分析代码

    JavaScript 解析Json字符串的性能比较分析代码

    我们在使用AJAX来做服务器端和客户端交互的时候,一般的做法是让服务器端返回一段JSON字符串,然后在客户端把它解析成JavaScript对象。
    2009-12-12
  • 实现单层json按照key字母顺序排序的示例

    实现单层json按照key字母顺序排序的示例

    下面小编就为大家分享一篇实现单层json按照key字母顺序排序的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Chrome中JSON.parse的特殊实现

    Chrome中JSON.parse的特殊实现

    ECMA 262 Edition5 中提供了原生的JSON支持,其中JSON.parse用来将字符串转成成json,见ECMA 262 Edition5 15.12.2。另见:字符串转换成json的三种方式
    2011-01-01

最新评论