JSON+JavaScript处理JSON的简单例子


Posted in Javascript onMarch 20, 2013

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 (hash table),有键列表(keyed list),或者关联数组 (associative array)。

2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

•对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间使用“,”(逗号)分隔。
•数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
•值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
•字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
•字符串(string)与C或者Java的字符串非常相似。
•数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
•空白可以加入到任何符号之间。 以下描述了完整的语言。
JSON举例(javascript中使用json):

<script type="text/javascript">
var user = 
          {
            "Id":1,
            "Name":"Hubery",
            "Age":23,
            "Address":
              {
                  "City":"Beijing","ZipCode":"111111"
              },
            "Email":"hubery@3water.com"
          };          alert(user.Id);
          alert(user.Name);
          alert(user.Age);
          alert(user.Address.City);
          alert(user.Address.ZipCode);
          alert(user.Email);
</script>
下面我们把Address属性定义成数组,用户有两个Address:

<script type="text/javascript">
var user = 
          {
            "Id":1,
            "Name":"Hubery",
            "Age":23,
            "Address":
              [
                {"City":"Beijing","ZipCode":"111111"},
                {"City":"Langfang","ZipCode":"222222"}
              ],
            "Email":"hubery@3water.com"
          };
          alert(user.Id);
          alert(user.Name);
          alert(user.Age);
          alert(user.Address[0].City);//还可以这样:alert(user.Address[0]["City"]);
          alert(user.Address[0].ZipCode);
          alert(user.Address[1].City);
          alert(user.Address[1].ZipCode);
          alert(user.Email);
</script>

如果我们想要一个用户列表,能行吗?答案是,没问题!

<script type="text/javascript">
var user = 
          [
              {
                "Id":1,
                "Name":"Hubery",
                "Age":23,
                "Address":
                  [
                    {"City":"Beijing","ZipCode":"111111"},
                    {"City":"Langfang","ZipCode":"222222"}
                  ],
                "Email":"hubery@3water.com"
              },
              {
                "Id":2,
                "Name":"Chris",
                "Age":24,
                "Address":{"City":"Beijing","ZipCode":"100085"},
                "Email":"chris@3water.com"
              }
          ]          alert("Id: "+user[0].Id+"\r\nName: "+
          user[0].Name+"\r\nAge: "+
          user[0].Age+"\r\nAddress: ("+
          user[0].Address[0].City+","+user[0].Address[0].ZipCode+") ("+user[0].Address[1].City+","+user[0].Address[1].ZipCode+")\r\nEmail: "+
          user[0].Email);
          alert("Id: "+user[1].Id+"\r\nName: "+
          user[1].Name+"\r\nAge: "+
          user[1].Age+"\r\nAddress: ("+
          user[1].Address.City+","+user[1].Address.ZipCode+")\r\nEmail: "+
          user[1].Email);
</script>
Javascript 相关文章推荐
让innerHTML的脚本也可以运行起来
Jul 01 Javascript
FCK调用方法..
Dec 21 Javascript
tbody元素支持嵌套的注意方法
Mar 24 Javascript
jQuery示例收集
Nov 05 Javascript
jQuery 源码分析笔记(2) 变量列表
May 28 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
May 23 Javascript
json数据的列循环示例
Sep 06 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
javascript观察者模式实现自动刷新效果
Sep 05 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
layui--js控制switch的切换方法
Sep 03 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
js或者jquery判断图片是否加载完成实现代码
Mar 20 #Javascript
javascript 三种方法实现获得和设置以及移除元素属性
Mar 20 #Javascript
asp.net中System.Timers.Timer的使用方法
Mar 20 #Javascript
js控制的回到页面顶端goTop的代码实现
Mar 20 #Javascript
让图片旋转任意角度及JQuery插件使用介绍
Mar 20 #Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 #Javascript
javascript中[]和{}对象使用介绍
Mar 20 #Javascript
You might like
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
Three.js学习之网格
2016/08/10 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
最新的咖啡店创业计划书
2013/12/30 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
小学生作文评语大全
2014/04/21 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
通知函格式范文
2015/04/27 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
OpenFeign实现远程调用
2022/08/14 Java/Android
python manim实现排序算法动画示例
2022/08/14 Python