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 相关文章推荐
如何用javascript去掉字符串里的所有空格
Feb 08 Javascript
写js时遇到的一些小问题
Dec 06 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
Dec 17 Javascript
jquery 插件实现瀑布流图片展示实例
Apr 03 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
详解基于vue的服务端渲染框架NUXT
Jun 20 Javascript
vue+iview+less 实现换肤功能
Aug 17 Javascript
微信小程序实现tab左右切换效果
Nov 15 Javascript
微信小程序位置授权处理方法
Jun 13 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
Oct 16 Javascript
详解ES6实现类的私有变量的几种写法
Feb 10 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
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
客户端静态页面玩分页
2006/06/26 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
JavaScript函数详解
2014/11/17 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
python利用装饰器进行运算的实例分析
2015/08/04 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
python opencv调用笔记本摄像头
2019/08/28 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
python中如何设置代码自动提示
2020/07/15 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
网上商城创业计划书范文
2014/01/31 职场文书
报关专员求职信范文
2014/02/22 职场文书
六个一活动实施方案
2014/03/21 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
理想演讲稿范文
2014/05/21 职场文书
2015年外联部工作总结
2015/04/03 职场文书
2015年手术室工作总结
2015/05/11 职场文书
安全教育培训制度
2015/08/06 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers