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弹出填写提示效果代码
Apr 16 Javascript
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
js格式化时间的方法
Dec 18 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
Jul 13 Javascript
基于vue组件实现猜数字游戏
May 28 Javascript
浅谈Vue组件及组件的注册方法
Aug 24 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
详解使用angular框架离线你的应用(pwa指南)
Jan 31 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 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
php stream_get_meta_data返回值
2013/09/29 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
页面中js执行顺序
2009/11/09 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python 爬虫的工具列表大全
2016/01/31 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
python实现排序算法解析
2018/09/08 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python 解决函数返回return的问题
2020/12/05 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
《放小鸟》教学反思
2014/04/20 职场文书
文秘应届生求职信
2014/07/05 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
2014年加油站工作总结
2014/12/04 职场文书
今日说法观后感
2015/06/08 职场文书
红楼梦读书笔记
2015/06/25 职场文书