JSON基本语法详解及与JavaScript的差异对比

作者:青柠

时间:2026-10-22

浏览:203

本文详细解析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程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章