JSON基本语法详解及与JavaScript的差异对比
本文详细解析JSON的基本语法结构,涵盖简单值、对象和数组三种类型。重点对比JSON与JavaScript在字符串引号、属性命名及对象字面量定义上的关键差异,通过具体代码实例说明JSON作为数据交换格式的规范性要求,帮助开发者准确掌握JSON的使用规范。
JSON语法概述
本文通过具体实例介绍JSON的基础语法,并分析其与JavaScript在数据表示上的异同点,供读者参考学习。
JSON语法主要支持三种类型的值表达。
- 简单值:语法与JavaScript一致,可表示字符串、数值、布尔值及null,但不包含JavaScript中的undefined类型。
- 对象(复杂数据类型):由一组有序的键值对组成,其中键可以是简单值,值可以是简单值或复杂数据类型。
- 数组(复杂数据类型):表示有序的值列表,可通过数值索引访问,元素类型任意,包括简单值、对象或数组。
JSON仅是一种用于表示结构化数据的格式,尽管其语法与JavaScript中的某些数据表示相似,但应用范围不限于JavaScript。
简单值规范
1 简单值
JSON字符串与JavaScript字符串的主要区别在于:JSON字符串强制使用双引号,而JavaScript字符串允许使用单引号。
布尔值和null同样属于有效的JSON字符串内容。在实际应用中,JSON更常用于表达复杂的数据结构。
对象与JavaScript的差异
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数据结构的最外层形式为对象或数组。
PS:这里再为大家推荐几款相关的json在线工具供大家参考:
在线JSON代码检验、检验、美化、格式化工具: http://tools.jb51.net/code/json
JSON在线格式化工具: http://tools.jb51.net/code/jsonformat
在线XML/JSON互相转换工具: http://tools.jb51.net/code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具: http://tools.jb51.net/code/jsoncodeformat
在线json压缩/转义工具: http://tools.jb51.net/code/json_yasuo_trans
更多关于JavaScript相关内容可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
JavaScript新手常犯的编码错误与最佳实践指南
2026-11-04 22:12:38
