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 Keycode对照表
Oct 24 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
Oct 17 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 Javascript
JS常用倒计时代码实例总结
Feb 07 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 Javascript
vue 搭建后台系统模块化开发详解
May 01 Javascript
JavaScript实现简易计算器小功能
Oct 22 Javascript
vue实现Toast组件轻提示
Apr 10 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
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
php简单备份与还原MySql的方法
2016/05/09 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
vue实现分页栏效果
2019/06/28 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python全局变量用法实例分析
2016/07/19 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
python实现复制大量文件功能
2019/08/31 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
python中的插入排序的简单用法
2021/01/19 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
weblogic面试题
2016/03/07 面试题
企业车辆管理制度
2014/01/24 职场文书
研究生毕业鉴定
2014/01/29 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
出国签证在职证明范本
2014/11/24 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书