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 相关文章推荐
我的javascript 函数链之演变
Apr 07 Javascript
另一个javascript小测验(代码集合)
Jul 27 Javascript
js中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
May 14 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
Jan 13 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
jQuery UI插件实现百度提词器效果
Nov 21 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
Jan 05 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 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读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
Three.js学习之网格
2016/08/10 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
Python3.6正式版新特性预览
2016/12/15 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
python怎么判断模块安装完成
2020/06/19 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
详解anaconda安装步骤
2020/11/23 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
森林防火标语
2014/06/23 职场文书
三好学生评语大全
2014/12/29 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
个人原因辞职信模板
2015/05/13 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
如何在C++中调用Python
2021/05/21 Python
利用Apache Common将java对象池化的问题
2022/06/16 Servers