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 相关文章推荐
Jquery 扩展方法
May 06 Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
javascript中var的重要性分析
Feb 11 Javascript
在linux中使用包管理器安装node.js
Mar 13 Javascript
JavaScript使用addEventListener添加事件监听用法实例
Jun 01 Javascript
js实现数组转换成json
Jun 26 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
日常收藏的jquery技巧
Dec 02 Javascript
完善的jquery处理机制
Feb 21 Javascript
详解微信小程序的不同函数调用的几种方法
May 08 Javascript
vue中使用v-model完成组件间的通信
Aug 22 Javascript
JS canvas实现画板和签字板功能
Feb 23 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
将数组写入txt文件 var_export
2009/04/21 PHP
php 全局变量范围分析
2009/08/07 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
Python生成pdf文件的方法
2014/08/04 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
python 基于opencv实现图像增强
2020/12/23 Python
python 通过exifread读取照片信息
2020/12/24 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
应聘教师自荐信
2013/10/12 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
小学后勤管理制度
2014/01/14 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
2015年纪委工作总结
2015/05/13 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
我去timi了,一起去timi是什么意思?
2022/04/13 杂记
nginx静态资源的服务器配置方法
2022/07/07 Servers