跳至正文

理解JSON数据格式 📦

在学习API的过程中,你经常会听到JSON这个词。JSON是程序之间交换数据时使用的格式。让我用简单的方式来解释!

用日常生活比喻JSON?

让我们把JSON比作快递包裹标签吧?

📦 快递包裹
┌──────────────────┐
│ 收件人: 张三 │
│ 地址: 北京市朝阳区 │
│ 电话: 138-1234-5678 │
│ 物品: 书 │
└──────────────────┘

用JSON来写这些信息:

{
"收件人": "张三",
"地址": "北京市朝阳区",
"电话": "138-1234-5678",
"物品": "书"
}

JSON的正式名称

JSON = JavaScript Object Notation

意思是"JavaScript对象表示法",但可以在所有编程语言中使用!

JSON的基本规则

1. 用花括号 包裹

{
"名称": "值"
}

2. 使用双引号 " "

{
"姓名": "张三"
}

3. 用冒号 : 连接名称和值

{
"年龄": 25
}

4. 用逗号 , 分隔多个信息

{
"姓名": "张三",
"年龄": 25,
"职业": "开发者"
}

JSON数据类型

JSON中可以使用的值:

1. 字符串 (String) ""

{
"姓名": "张三",
"城市": "北京"
}

2. 数字 (Number)

{
"年龄": 25,
"身高": 175.5,
"温度": -5
}

3. 布尔值 (Boolean)

{
"注册完成": true,
"邮箱验证": false
}

4. 数组 (Array) [ ]

存储多个项目时使用:

{
"爱好": ["阅读", "电影", "编程"],
"分数": [90, 85, 95]
}

5. 对象 (Object)

将信息分组时:

{
"用户": {
"姓名": "张三",
"年龄": 25
}
}

6. null

没有值时:

{
"中间名": null
}

通过实际例子理解

例1: 用户信息 👤

{
"姓名": "张三",
"年龄": 25,
"邮箱": "zhang@example.com",
"会员": true,
"地址": {
"城市": "北京",
"区": "朝阳区"
},
"爱好": ["阅读", "看电影", "编程"]
}

例2: 商城商品 🛍️

{
"商品名": "笔记本电脑",
"价格": 8000,
"库存": 5,
"促销中": true,
"颜色": ["银色", "灰色", "黑色"],
"规格": {
"CPU": "i7",
"RAM": "16GB",
"存储": "512GB SSD"
}
}

例3: 天气信息 ☀️

{
"城市": "北京",
"温度": 23,
"天气": "晴",
"湿度": 60,
"降雨概率": 0,
"周预报": [
{"星期": "一", "温度": 22},
{"星期": "二", "温度": 24},
{"星期": "三", "温度": 25}
]
}

理解JSON数组

存储多个数据时使用方括号 [ ]:

简单数组

["苹果", "香蕉", "橙子"]

对象数组

[
{
"姓名": "张三",
"年龄": 25
},
{
"姓名": "李四",
"年龄": 30
},
{
"姓名": "王五",
"年龄": 28
}
]

如何阅读JSON

{
"学生": {
"姓名": "张三",
"分数": [90, 85, 95],
"通过": true
}
}

这样读:

  • "有学生信息"
  • "里面的姓名是张三"
  • "分数是90、85、95"
  • "通过是true(真)"

JSON vs 其他格式

JSON vs CSV

CSV (像Excel的表格格式):

姓名,年龄,城市
张三,25,北京
李四,30,上海

JSON:

[
{"姓名": "张三", "年龄": 25, "城市": "北京"},
{"姓名": "李四", "年龄": 30, "城市": "上海"}
]

JSON的优点:

  • 可以表达复杂结构
  • 轻松表达嵌套数据
  • 作为API标准使用

实战应用示例

API响应示例

向GitHub API请求用户信息时:

{
"login": "github",
"id": 1,
"name": "GitHub",
"location": "San Francisco",
"public_repos": 344,
"followers": 1000000,
"following": 0
}

配置文件示例

用JSON编写程序配置:

{
"应用名": "我的网站",
"版本": "1.0.0",
"数据库": {
"主机": "localhost",
"端口": 3306,
"用户": "admin"
},
"功能": {
"暗黑模式": true,
"通知": true,
"自动保存": false
}
}

使用JSON工具

用我们网站的工具来处理JSON吧!

1. 格式化JSON

JSON Formatter - 让复杂的JSON更易读!

2. 探索JSON数据

JSON Path Tester - 从JSON中查找所需数据

3. 将JSON转换为其他格式

常见错误和解决方法

❌ 错误1: 忘记逗号

{
"姓名": "张三"
"年龄": 25
}

✅ 正确方法:

{
"姓名": "张三",
"年龄": 25
}

❌ 错误2: 最后添加逗号

{
"姓名": "张三",
"年龄": 25,
}

✅ 正确方法:

{
"姓名": "张三",
"年龄": 25
}

❌ 错误3: 使用单引号

{
'姓名': '张三'
}

✅ 正确方法:

{
"姓名": "张三"
}

❌ 错误4: 写注释

{
// 这是注释
"姓名": "张三"
}

JSON中不能写注释! ❌

JSON的使用场景

1. API通信 🌐

大多数Web API都用JSON交换数据。

// API请求
fetch('https://api.example.com/users')
.then(response => response.json())
.then(data => console.log(data))

2. 配置文件 ⚙️

  • package.json (Node.js)
  • tsconfig.json (TypeScript)
  • settings.json (VS Code)

3. 数据存储 💾

NoSQL数据库(MongoDB等)以JSON格式存储数据。

4. 数据交换 📤📥

服务器和客户端交换数据时。

常见问题 (FAQ)

Q1: JSON是编程语言吗?

A: 不是!JSON是数据格式。只是表示数据的一种方式。

Q2: JSON只在JavaScript中使用吗?

A: 不是!几乎所有编程语言都可以使用。

  • Python
  • Java
  • C++
  • PHP
  • Ruby 等等!

Q3: JSON和XML的区别是?

A: XML是以前常用的格式。JSON更简单、更易读,所以现在更多使用JSON。

XML:

<user>
<name>张三</name>
<age>25</age>
</user>

JSON:

{
"name": "张三",
"age": 25
}

Q4: JSON文件扩展名是?

A: 是 .json

data.json
config.json
users.json

JSON验证

要检查JSON是否格式正确:

  1. 使用 JSON Formatter
  2. 使用在线JSON验证工具
  3. 在浏览器开发者工具中检查

练习: 自己创建JSON

用JSON创建你自己的信息:

{
"姓名": "你的姓名",
"年龄": 你的年龄,
"居住地": "你的城市",
"爱好": [
"爱好1",
"爱好2",
"爱好3"
],
"学生": true,
"介绍": {
"喜欢的食物": "...",
"喜欢的颜色": "..."
}
}
提示

粘贴到 JSON Formatter 并点击"Format"按钮! 会整理得很漂亮,还能检查语法错误。

下一步 🚀

如果你理解了JSON:

  1. JSON Formatter - 格式化JSON
  2. JSON Path Tester - 搜索JSON数据
  3. API Tester - 测试使用JSON的API
  4. JSON to TypeScript - 将JSON转换为代码

总结

JSON不难!是整理数据的方法之一。

要记住的要点:

  • { } 用花括号开始和结束
  • " " 使用双引号
  • : 用冒号连接名称和值
  • , 用逗号分隔项目
  • 最后一项后面没有逗号

现在你能读写JSON了吗? 🎉

如果要学习API和Web开发,JSON是必不可少的。经常看的话很快就会熟悉!