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 相关文章推荐
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
jquery Mobile入门—外部链接切换示例代码
Jan 08 Javascript
鼠标滚轴控制文本框值的JS代码
Nov 19 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
JavaScript获得表单target属性的方法
Apr 02 Javascript
setTimeout内不支持jquery的选择器的解决方案
Apr 28 Javascript
jquery实现全屏滚动
Dec 28 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
原生JS实现幻灯片
Feb 22 Javascript
详解如何用VUE写一个多用模态框组件模版
Sep 27 Javascript
JavaScript运动原理基础知识详解
Apr 02 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设计模式 Builder(建造者模式)
2011/06/26 PHP
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php反射应用示例
2014/02/25 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
Python读取键盘输入的2种方法
2015/06/16 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python3 replace()函数使用方法
2018/03/19 Python
对numpy中shape的深入理解
2018/06/15 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
python实现学生通讯录管理系统
2021/02/25 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
应届生.NET方向面试题
2015/05/23 面试题
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
大学生党员个人对照检查材料范文
2014/09/25 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
MySQL约束超详解
2021/09/04 MySQL
4种方法python批量修改替换列表中元素
2022/04/07 Python