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 相关文章推荐
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
js charAt的使用示例
Feb 18 Javascript
jquery uploadify如何取消已上传成功文件
Feb 08 Javascript
Vue之Watcher源码解析(1)
Jul 19 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
Vue 实现树形视图数据功能
May 07 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
深入理解react 组件类型及使用场景
Mar 07 Javascript
JavaScript实现美化滑块效果
May 17 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
2020/04/10 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
python脚本替换指定行实现步骤
2017/07/11 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Numpy 多维数据数组的实现
2020/06/18 Python
python利用线程实现多任务
2020/09/18 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
销售心得体会
2014/01/02 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
小学校本教研总结
2015/08/13 职场文书
中学团支部工作总结
2015/08/13 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python