JSON定义

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同一时候也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON採用与编程语言无关的文本格式,可是也使用了类C语言(包含C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。

JSON的结构基于以下两点

  • 1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等
  • 2. 值的有序列表 多数语言中被理解为数组(array)

JSON使用

JSON以一种特定的字符串形式来表示 JavaScript 对象。假设将具有这样一种形式的字符串赋给随意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。

这里如果我们须要创建一个User对象,并具有下面属性

  • 用户ID
  • username
  • 用户Email

    您能够使用下面JSON形式来表示User对象:

    {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};

    然后假设把这一字符串赋予一个JavaScript变量,那么就能够直接使用对象的任一属性了。

    完整代码:

    <script>
    var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
    alert(User.Name);
    </script>

    实际使用时可能更复杂一点,比方我们为Name定义更具体的结构,使它具有FirstName和LastName:

    {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"}

    完整代码:

    <script>
    var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"};
    alert(User.Name.FirstName);
    </script>

    如今我们添加一个新的需求,我们某个页面须要一个用户列表,而不不过一个单一的用户信息,那么这里就须要创建一个用户列表数组。
    以下代码演示了使用JSON形式定义这个用户列表:

    [
    {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
    {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
    {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
    ]

    完整代码:

    <script>
    var UserList = [
    {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
    {"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
    {"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
    ];
    alert(UserList[0].Name.FirstName);
    </script>

    其实除了使用"."引用属性外,我们还能够使用以下语句:

    alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]); 

    如今读者应该对JSON的使用有点认识了,归纳为下面几点:

  • 对象是属性、值对的集合。一个对象的開始于“{”,结束于“}”。每个属性名和值间用“:”提示,属性间用“,”分隔。
  • 数组是有顺序的值的集合。一个数组開始于"[",结束于"]",值之间用","分隔。
  • 值能够是引號里的字符串、数字、true、false、null,也能够是对象或数组。这些结构都能嵌套。
  • 字符串和数字的定义和C或Java基本一致。

    小节

    本文通过一个实例演示,初步了解了JSON 的强大用途。能够归结例如以下:

  • JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
  • JSON 帮助分离了验证数据和逻辑。
  • JSON 帮助为 Web 应用程序提供了 Ajax 的本质。

    參考资料:
    http://www.json.org/

  • JSON数据格式介绍的更多相关文章

    1. iOS 阶段学习第22天笔记(JSON数据格式介绍)

      iOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)UR ...

    2. json数据格式了解

      json数据格式介绍: https://en.wikipedia.org/wiki/JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 json语法 ...

    3. iOS 阶段学习第23天笔记(XML数据格式介绍)

      iOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使 ...

    4. JS中将JSON的字符串解析成JSON数据格式《转》

      在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

    5. JSON字符串解析成JSON数据格式

      在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

    6. C语言cJSON库的使用,解析json数据格式

      C语言cJSON库的使用,解析json数据格式 摘自:https://www.cnblogs.com/piaoyang/p/9274925.html 对于c语言来说是没有字典这样的结构的,所以对于解析 ...

    7. 基于json数据格式实现的简单数据库——jsonDB

      已在github上建立项目:https://github.com/ThinkerCodeChina/jsonDB /** +-------------------------------------- ...

    8. iOS开发之功能模块--Apns推送中的的json格式介绍

      在开发向苹果Apns推送消息服务功能,我们需要根据Apns接受的数据格式进行推送.下面接受我在进行apns推送时候总结的一点apns服务接受的Json数据格式 示例 1: 以下负载包含哦一个简单的 a ...

    9. XML和JSON数据格式对比

      概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

    随机推荐

    1. project小技巧:快捷键

      project小技巧:快捷键 任务升级         ALT  +  SHIFT + 向左键 任务降级         ALT  +  SHIFT + 向右键 滚动到表头(第一个任务)    Ctr ...

    2. spark aggregate

      该函数官方的api,说的不是很明白: aggregate(zeroValue, seqOp, combOp) Aggregate the elements of each partition, and ...

    3. 原生Javascript 省市区下拉列表插件

      每个电商网站中,都会有收件地址管理模块,用户进行地址操作时,最好不要用户手工进行填写地址. 常见的地址管理界面: 实现插件:PCASClass.js 插件下载地址:http://pan.baidu.c ...

    4. python模块目录文件后续

      1,新增PythonModule加载path Ruiy tip(关于python list[]数据库类型特殊你懂的!append(""),extend([""] ...

    5. MVC折线图应用

      后台 获取值并转换成json数据存到实体里面,然后前台输出 HighchartsModels model = new HighchartsModels(); model.DataDicJson = J ...

    6. cocos2d-x 学习笔记一(概述)

      1.游戏-可控制的动画-连续的静态图像 2.关键帧驱动游戏 3.事件驱动型游戏 4.cocos2d-x 1.0 opengl-es 1.0;cocos2d-x 2.x opengl-es 2.0;co ...

    7. Dollar Dayz(大数母函数,高低位存取)

      Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5655   Accepted: 2125 Descr ...

    8. EK中fromCharCode和parseInt的配合使用

      基于web的漏洞攻击的第一步一般是:在landing page中通过<script>标签下的JavaScript脚本引入一些恶意链接.这些脚本往往会採用各种各样的混淆.加密手法来躲避AV和 ...

    9. 用cssText属性批量操作样式

      给一个HTML元素设置css属性,如 var head= document.getElementById("head"); head.style.width = "200 ...

    10. orapwd创建密码文件

      在CMD里输入命令如下:C:\Documents and Settings\Administrator>orapwd Usage: orapwd file=<fname> passw ...