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 必填项判断表单是否为空的方法
Sep 14 Javascript
Javascript 函数中的参数使用分析
Mar 27 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
Nov 09 Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
bootstrap学习笔记之初识bootstrap
Jun 21 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
vue项目中axios使用详解
Feb 07 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
JavaScript制作3D旋转相册
Aug 02 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
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
SONY SRF-40W电路分析
2021/03/02 无线电
PHP 加密解密内部算法
2010/04/22 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
PHP简洁函数小结
2011/08/12 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
详解php协程知识点
2018/09/21 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
详解Bootstrap插件
2016/04/25 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
Django中反向生成models.py的实例讲解
2018/05/30 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
Python截图并保存的具体实例
2021/01/14 Python
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
幼儿园大班毕业教师寄语
2014/04/03 职场文书
提拔干部考察材料
2014/05/26 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
工程承包协议书范本
2014/09/29 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
网络营销实训总结
2015/08/03 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
i7 6700处理器相当于i5几代
2022/04/19 数码科技