什么是 JSON?JSON详解

现在程序员还有谁不知道 JSON 吗?无论对于前端还是后端,JSON 都是一种常见的数据格式。那么 JSON 到底是什么呢?

JSON 的定义

JSON (JavaScript Object Notation) ,是一种轻量级的数据交换格式。它的使用范围很广,并成为 ECMA 标准,可以被使用在多种编程语言中,用于前后端之间的数据传输、存储和交换数据。可以说是"用更少的编码,有更快的处理速度",所以深受广大程序员的喜爱。

JSON 格式的数据是由键值对组成的,其中键值对之间使用逗号分隔。在 JSON 中,键和值都必须使用双引号引起来。

一个简单的 JSON 对象例子:

json 复制代码
{
  "name": "Apifox",
  "age": 2,
  "city": "Guangzhou"
}

JSON 的含义和类型

JSON 用于 JavaScript,把任何 JavaScript 对象变成 JSON,即把这个对象序列化成一个 JSON 格式的字符串,然后通过网络传递给其他计算机。JSON 格式的字符串由双引号 " " 包裹,由键值对组成,键和值之间使用冒号 : 分隔,键值对之间使用逗号 , 分隔。值可以是字符串、数字、布尔、null、数组或对象等类型。

在 JSON 中,常见的数据类型有:

  • 字符串:JavaScript 中的string,用于表示文本信息,包含反斜杠 \ 转义。
json 复制代码
{ "name": "Apifox" }
  • 数字:JavaScript 中的number,用于表示数值信息,可以是整数或浮点数。
json 复制代码
{
  "id": 48,
  "price": 17.95
}
  • 布尔值:JavaScript 中的boolean,用于表示真假信息。布尔值并不包含在引号内,而是被视为字符串值。
json 复制代码
{ "allowLogin": false }
  • null:JavaScript的null,用于表示空值。
json 复制代码
{ "address": null }
  • 对象:JavaScript的{ ... },表示方式用于表示有序的值的集合,每个值可以是任意类型。
json 复制代码
{
  "category" : { 
                "id" : 675442 ,  
                "name" : "小狐" 
        }
}
  • 数组:JavaScript的Array,表示方式为[],用于表示无序的键值对集合,每个键值对都是由键名和对应的值组成。
json 复制代码
{
        "list" : [ 
                {
                 "name" : "Lihua", 
                 "age" : 22, 
                }

                {
                 "name" : "Zhangsan", 
                 "age" : 25
                }
        ] 
}

下面是一个完整的 JSON 数据示例:

json 复制代码
{
  "name": "Simon",
  "age": 2,
  "isMale": true,
  "hobbies": ["reading", "learning", "traveling"],
  "address": {
    "city": "Guangzhou",
    "postCode": "510000"
  },
  "email": null
}

JSON 数据的使用场景

JSON 的应用非常广泛。它被用于前后端之间的数据传输,也被用于存储和交换数据。在 Web 开发中,JSON 通常被用来获取来自服务器的数据。这些数据可以被使用在网页上,以便实现动态的交互和更新页面内容。同时,JSON 也被广泛应用于移动应用程序、桌面应用程序以及各种互联网服务中。

相比于其它数据格式,JSON 具有以下优势:

  • 简洁易读:JSON 的语法比较简洁,易于阅读和编写。
  • 解析速度快:JSON 的解析速度通常比其他数据格式更快。
  • 兼容性好:JSON 和 JavaScript 的兼容性非常好,因为它们共享着相同的语法和数据结构。

JSON 与 XML

XML 是一种另外一种常见的数据格式(纯文本格式),也被广泛应用于数据交换。在 JSON 出现之前,大家一直用 XML 来传递数据。

但是相对于 JSON 而言,XML 规范比较复杂,JSON 的语法更加简洁,易于阅读和编写。且 JSON 的解析速度通常也比 XML 更快。同时,JSON 和 JavaScript 的兼容性非常好,因为它们共享着相同的语法和数据结构。

但是 XML 仍然是一种被广泛使用的数据格式,尤其在某些特定领域和场景下,它对于数据的描述更加严谨和准确,且支持更为复杂的数据结构和数据类型定义等。因此,在实际的编程和开发过程中,我们需要根据具体的场景和需要,选择合适的数据格式。

关于 JSON 的其他补充

除了上述内容,JSON 还有一些其他的相关内容:

  • JSONP:JSONP 是 JSON with Padding 的简称,是一种通过 script 标签跨域获取 JSON 数据的技术。
  • JSON Schema:JSON Schema 是一种用于验证和描述 JSON 数据的规范,它可以用于定义 JSON 数据的结构、格式和约束条件。
  • JSON Web Token(JWT) :JWT 是一种基于 JSON 的开放标准,用于在网络上安全地传输声明。它常被用于身份认证和授权场景中。

需要注意的是,JSON 虽然被广泛使用,但是它并不是一种完全安全的数据格式。在处理 JSON 数据时,需要注意防止 XSS 攻击和其他安全漏洞。因此,在使用 JSON 时,需要仔细考虑数据的来源和使用方式,以确保数据的安全性。

小结

JSON 作为一种轻量级的数据格式,具有更加简洁的语法和更好的解析速度。因此,学习如何使用JSON 已经变成了现代编程的基本技能之一。JSON 数据格式也是常用于 API 接口传输数据的格式。

知识扩展:

上面我们了解了JSON 数据格式,如果你想了解更多 API 相关使用技巧, 可以查看以下文章:

相关推荐
TrisighT7 小时前
Electron 鸿蒙 PC 上点外链唤醒应用,我试了 6 种写法只有 1 种能跑
前端·electron·harmonyos
AskHarries8 小时前
用 OpenClaw 做数据分析报告:CSV / Excel 到可视化结果
程序员
天才熊猫君8 小时前
配置与数据分离:一种可视化搭建的属性编辑方案
前端·javascript
林希_Rachel_傻希希9 小时前
web性能之相关路径——AI总结
前端·javascript·面试
两万五千个小时9 小时前
Claude Code 上下文管理(二):零 Token 消耗的压缩三板斧
人工智能·程序员·开源
竹林8189 小时前
用 wagmi v2 踩坑两天,我终于搞懂了多链钱包切换在 DeFi 前端中的正确姿势
前端·javascript
用户2136610035729 小时前
Vue项目搜索功能与面包屑导航
前端·javascript
星栈9 小时前
LiveView 的实时通信,爽是爽,但 PubSub 和广播也最容易把自己绕晕
前端·前端框架·elixir
用户2930750976699 小时前
告别关键词匹配,拥抱向量语义 —— RAG 搜索从零到一
前端
独孤留白9 小时前
从C到Rust:告别 C 的"指针 + 长度"手动模式
前端·rust