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 相关文章推荐
修复bash漏洞的shell脚本分享
Dec 31 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
详解ES6中的let命令
Apr 05 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
React Native之prop-types进行属性确认详解
Dec 19 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
详解JSON和JSONP劫持以及解决方法
Mar 08 Javascript
Vue v-text指令简单使用方法示例
Sep 19 Javascript
Node.js 在本地生成日志文件的方法
Feb 07 Javascript
vue实现登录功能
Dec 31 Vue.js
浅谈JavaScript作用域
Dec 06 Javascript
vue中data里面的数据相互使用方式
Jun 05 Vue.js
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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
php中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
浅析js中的浮点型运算问题
2014/01/06 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
Node.js事件驱动
2015/06/18 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
Json解析的方法小结
2016/06/22 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
js实现随机抽奖
2020/03/19 Javascript
Python内建数据结构详解
2016/02/03 Python
python装饰器初探(推荐)
2016/07/21 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
pandas数据处理进阶详解
2019/10/11 Python
python中自带的三个装饰器的实现
2019/11/08 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
详解Canvas事件绑定
2018/06/27 HTML / CSS
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
应用艺术毕业生的自我评价
2013/12/04 职场文书
给老师的检讨书
2014/02/11 职场文书
税务会计岗位职责
2014/02/18 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2014教师年度工作总结
2014/11/10 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
python编写五子棋游戏
2021/05/25 Python