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 相关文章推荐
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 Javascript
Javascript基础教程之数据类型 (数值 Number)
Jan 18 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
Apr 12 Javascript
JavaScript改变CSS样式的方法汇总
May 07 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 Javascript
微信小程序实现传递多个参数与事件处理
Aug 12 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数据饼图效果实现代码
2011/11/23 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP 微信支付类 demo
2015/11/30 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python基础教程之循环介绍
2014/08/29 Python
Python多进程机制实例详解
2015/07/02 Python
python学生管理系统
2019/01/30 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Django中的cookie和session
2019/08/27 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
Django缓存Cache使用详解
2020/11/30 Python
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
linux面试题参考答案(11)
2012/05/01 面试题
大学生入党自我鉴定
2013/10/31 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
依法行政工作汇报
2014/10/28 职场文书
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android