JSON的了解

一.什么是JSON

JSON是一种轻量级的数据交换格式,它的全称是JavaScript Object Notation(JavaScript对象表示法)

它是一种在互联网上,不同程序之间传递和存储数据的"通用语言"和"标准信封"

  1. 用于"交换"数据:它最主要的作用是让一个程序(比如你的手机APP)能够从另一个程序(比如服务器)那里获取数据,或者把自己的数据发送过去。

  2. "文本"格式:JSON 本质上就是纯文本。这意味着任何编程语言都能轻松地读取和生成它,所以它才能成为"通用语言"。

  3. "人类可读":它的结构清晰,使用我们熟悉的括号、冒号来组织数据,人类也能一眼看懂它大概包含了什么信息。

  4. 源于 JavaScript,但超越 JavaScript:虽然它的语法来自 JavaScript,但现在几乎所有主流编程语言(如 Python, Java, C#, PHP 等)都内置了解析和生成 JSON 的工具。

JSON 的构建基于两种结构:

  1. "键值对"的集合(在各种语言中被理解为对象、字典、哈希表等)。

  2. 值的有序列表(也就是数组或列表)。

javascript 复制代码
{
  "name": "张三",
  "age": 30,
  "isStudent": false,
  "hobbies": ["阅读", "游泳", "编程"],
  "address": {
    "street": "科技园路123号",
    "city": "深圳市",
    "country": "中国"
  }
}

在 JSON 流行之前,XML 是数据交换的主流格式。我们来看一个对比:

XML示例:

XML 复制代码
<person>
  <name>张三</name>
  <age>30</age>
  <isStudent>false</isStudent>
  <hobbies>
    <hobby>阅读</hobby>
    <hobby>游泳</hobby>
    <hobby>编程</hobby>
  </hobbies>
</person>

JSON示例:

javascript 复制代码
{
  "name": "张三",
  "age": 30,
  "isStudent": false,
  "hobbies": ["阅读", "游泳", "编程"]
}

JSON 的优势:

  • 更简洁 :没有那么多冗余的标签(如 <person>, </name>),所以文件体积更小,在网络传输时更快。

  • 更易读:结构更清晰,一眼就能看出数据的层次。

  • 解析更快:由于其语法与 JavaScript 原生兼容,在 Web 环境中解析速度远超 XML。其他语言的解析器也因其简单而非常高效。

主要应用场景

  1. Web APIs:这是 JSON 最最常见的用途。当您访问一个网页或使用手机APP时,客户端(浏览器/APP)会向服务器请求数据,服务器返回的通常就是 JSON 格式的数据。例如,天气预报API返回天气数据,新闻APP获取新闻列表。

  2. 配置文件 :很多现代软件和框架使用 JSON 文件来存储配置信息。例如,VS Code 编辑器的用户设置就存储在 settings.json 文件里。

  3. NoSQL 数据库:像 MongoDB 这样的数据库,直接使用 JSON(或其二进制变体 BSON)格式来存储数据。

总结

JSON 是一种简单、清晰、高效的数据格式,它作为互联网上程序与程序之间的"通用语言",极大地简化了数据交换和存储的过程。 只要您接触到网络编程或数据处理,JSON 就是一个必须掌握的基础知识。

相关推荐
weixin_4407305010 小时前
内置函数、json文本、pickle二进制
开发语言·python·json
念越12 小时前
接口自动化测试从入门到实战:接口用例设计、Requests、Pytest、YAML、JSON Schema 与 Allure 报告
python·测试工具·自动化·json·pytest
福兮说2 天前
前后端算的 MD5、SHA-256 对不上?编码、换行、BOM、HMAC、JSON 顺序,八个原因逐个实测
前端·javascript·node.js·json·哈希算法
网络毒刘2 天前
MCP 从 0 接入 Cursor:mcp.json 安装配置到最小调用与常见报错
json
小小龙学IT2 天前
Go 语言 encoding/json 标准库深度解析:从 Tag 反射到流式处理
golang·json
李游Leo3 天前
HarmonyOS 7 + Node.js-JSON Schema:审核测试路径与版本事实的一致性门禁【鸿蒙心迹】
node.js·json·harmonyos
ha_lydms4 天前
MaxCompute中JSON函数
大数据·数据库·阿里云·json·dataworks·maxcompute·odps
LeoCrawls4 天前
Python 读取 JSON 常见报错排查,附完整处理函数
python·json·php
星河耀银海5 天前
数据解析:AI返回JSON数据在HTML5中的渲染方法
人工智能·json·html5
三8445 天前
Fastjson 漏洞 · 01 · 认识 Fastjson 与序列化基础
json·fastjson·反序列化