JSON基本语法及与JavaScript的异同实例分析


Posted in Javascript onJanuary 04, 2019

本文实例讲述了JSON基本语法及与JavaScript的异同。分享给大家供大家参考,具体如下:

JSON 的语法可以表达三种类型的值。

  • 简单值:与 JavaScript 语法相同,可以表示字符串、数值、布尔值以及 null,但不支持 JavaScript 的 undefined。
  • 对象(复杂数据类型):是一组有序的键值对,每个键值对中的键可以是简单值,也可以是复杂数据类型的值。
  • 数组(复杂数据类型):是一组有序的值的列表,可以使用数值索引来访问其中的值,这个值可以是任意类型(简单值、对象或数组)。

JSON 只是一种表示结构化数据的格式,虽然与 JavaScript 中表示的数据在某些语法上相同,但它不只是应用于 JavaScript 中。

1 简单值

JSON 字符串与 JavaScript 字符串的区别是:JSON 字符串只能使用双引号!而 JavaScript 中字符串还可以使用单引号。

布尔值和 null 也是有效的 JSON 字符串。在实践中,JSON 更多是用来表达更复杂的数据结构的。

2 对象

JSON 对象与 JavaScript 对象有一些不同。在 JavaScript 中的对象字面量是这样的:

var person = {
  name : "deniro",
  age :15
}

而在 JSON 中的对象必须给属性加上引号,而在 JavaScript 中倒是可加可不加:

var person = {
  "name" : "deniro",
  "age" :15
}

JSON 中的对象还有两点不同:

①. 不需要声明变量。
②. 末尾不需要加分号。

在 JSON 中的对象的属性的值,可以是简单值,也可以是复杂类型的值:

var person = {
  "name" : "deniro",
  "age" : 15,
  "school" : {
    "name" : "MIT",
    "location":"American"
  }
}

注意,同一个对象中不能出席两个同名的属性!再重复一次,JSON 对象中的所有属性名都必须加上双引号!!!

3 数组

JSON 数组采用的就是 JavaScript 中的数组字面量形式:

[15,"Hi",true]

数组与对象结合,可以构建出更复杂的数据集合:

[
  {
   "title" :"万物简史",
   "authors":[
    "比尔·布莱森"
   ],
   year:2005
  },
   {
   "title" :"父与子全集",
   "authors":[
    "埃·奥·卜劳恩"
   ],
   year:2003
  }
]

这个数组包含了表示图书的对象,每个图书对象有一个 authors 属性,它的值也是一个数组。对象和数组一般是 JSON 数据结构的最外层形式。

Javascript 相关文章推荐
文本框input聚焦失焦样式实现代码
Oct 12 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
理解JavaScript原型链
Oct 25 Javascript
canvas绘制的直线动画
Jan 23 Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
Angular使用操作事件指令ng-click传多个参数示例
Mar 27 Javascript
vue 组件的封装之基于axios的ajax请求方法
Aug 11 Javascript
webpack4 处理SCSS的方法示例
Sep 03 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
Sep 14 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
javascript实现摄像头拍照预览
Sep 30 Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 #Javascript
Node.js操作系统OS模块用法分析
Jan 04 #Javascript
Node.js console控制台简单用法分析
Jan 04 #Javascript
Node.js JSON模块用法实例分析
Jan 04 #Javascript
使用VUE+iView+.Net Core上传图片的方法示例
Jan 04 #Javascript
Node.js assert断言原理与用法分析
Jan 04 #Javascript
如何为vuex实现带参数的 getter和state.commit
Jan 04 #Javascript
You might like
PHP中的替代语法介绍
2015/01/09 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
js运动应用实例解析
2015/12/28 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
python 合并文件的具体实例
2013/08/08 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
班委竞选演讲稿
2014/04/28 职场文书
银行奉献演讲稿
2014/09/16 职场文书
北京颐和园导游词
2015/01/30 职场文书
慰问信格式
2015/02/14 职场文书