← 返回博客

JSON 文件详解:您需要知道的一切

关于 JSON 文件的综合指南 - 了解 .json 扩展名、MIME 类型、结构,以及如何有效地创建、打开和使用 JSON 文件。

Big JSON Team9 分钟阅读beginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

9 分钟阅读

# JSON 文件详解:您需要知道的一切

JSON 文件在现代软件开发中无处不在。从配置文件到数据存储,了解 JSON 文件对于开发人员、数据分析师以及任何处理数字数据的人来说都至关重要。本综合指南涵盖了您需要了解的关于 JSON 文件的所有内容。

什么是 JSON 文件?

JSON 文件是一个文本文件,包含以 JavaScript Object Notation 格式结构化的数据。这些文件使用 .json 扩展名,并以人类可读的结构化格式存储数据,计算机可以轻松解析和生成。

文件扩展名

JSON 文件使用 .json 扩展名:

  • config.json
  • package.json
  • data.json
  • settings.json

MIME 类型和内容类型

通过 HTTP 提供 JSON 文件时,正确的 MIME 类型是:

Content-Type: application/json

这告诉浏览器和应用程序如何解释文件内容。

JSON 文件的结构

基本结构

JSON 文件必须包含单个顶级值,通常是对象或数组:

对象作为根:
{

"name": "示例",

"version": "1.0.0"

}

数组作为根:
[

{"id": 1, "name": "项目 1"},

{"id": 2, "name": "项目 2"}

]

字符编码

JSON 文件应以 UTF-8 编码,不带 BOM(字节顺序标记)。这确保:

  • 通用兼容性
  • 正确处理国际字符
  • 更小的文件大小

空白字符

虽然解析器会忽略空白字符(空格、制表符、换行符),但正确的格式可以提高可读性:

压缩(生产环境):
{"name":"应用","version":"1.0","active":true}
格式化(开发环境):
{

"name": "应用",

"version": "1.0",

"active": true

}

常见的 JSON 文件类型

1. 配置文件

应用程序使用 JSON 进行配置:

config.json:
{

"server": {

"port": 3000,

"host": "localhost"

},

"database": {

"url": "mongodb://localhost:27017",

"name": "myapp"

},

"logging": {

"level": "info",

"file": "app.log"

}

}

2. 包清单

包管理器使用 JSON 定义依赖项:

package.json(Node.js):
{

"name": "my-application",

"version": "2.1.0",

"description": "我的超棒应用",

"main": "index.js",

"scripts": {

"start": "node index.js",

"test": "jest"

},

"dependencies": {

"express": "^4.18.0",

"mongoose": "^7.0.0"

},

"devDependencies": {

"jest": "^29.0.0"

}

}

3. 数据存储文件

JSON 文件可以存储应用程序数据:

users.json:
{

"users": [

{

"id": "usr_001",

"username": "alice",

"email": "alice@example.com",

"role": "admin",

"createdAt": "2026-01-01T00:00:00Z"

},

{

"id": "usr_002",

"username": "bob",

"email": "bob@example.com",

"role": "user",

"createdAt": "2026-01-05T10:30:00Z"

}

]

}

4. 翻译文件

国际化(i18n)通常使用 JSON:

zh.json:
{

"welcome": "欢迎",

"login": "登录",

"logout": "登出",

"errors": {

"required": "此字段为必填项",

"invalid_email": "请输入有效的电子邮件"

}

}

5. API 响应文件

用于测试的模拟数据:

api-response.json:
{

"status": "success",

"data": {

"products": [

{

"id": "prod_123",

"name": "笔记本电脑",

"price": 999.99,

"inStock": true

}

]

},

"metadata": {

"page": 1,

"perPage": 20,

"total": 156

}

}

如何创建 JSON 文件

方法 1:文本编辑器

使用任何文本编辑器创建 JSON 文件:

  • 打开文本编辑器(记事本、VS Code、Sublime Text)
  • 编写您的 JSON 内容
  • 使用 .json 扩展名保存文件
  • 示例:
    {
    

    "title": "我的第一个 JSON 文件",

    "created": "2026-01-15",

    "items": [1, 2, 3]

    }

    方法 2:编程方式

    大多数编程语言都可以创建 JSON 文件:

    Python:
    import json
    
    

    data = {

    "name": "张三",

    "age": 30,

    "city": "北京"

    }

    with open('data.json', 'w', encoding='utf-8') as f:

    json.dump(data, f, ensure_ascii=False, indent=2)

    JavaScript/Node.js:
    const fs = require('fs');
    
    

    const data = {

    name: "张三",

    age: 30,

    city: "北京"

    };

    fs.writeFileSync('data.json', JSON.stringify(data, null, 2));

    如何打开和读取 JSON 文件

    在文本编辑器中打开

    任何文本编辑器都可以打开 JSON 文件:

    • 记事本:Windows 内置
    • VS Code:带语法高亮和验证
    • Sublime Text:快速且功能丰富
    • Notepad++:免费且强大

    在浏览器中查看

    现代浏览器可以显示格式化的 JSON:

  • 将 JSON 文件拖放到浏览器窗口
  • 浏览器将以可读格式显示
  • 在线 JSON 查看器

    专门的工具提供高级功能:

    • 语法高亮
    • 可折叠树视图
    • 验证和错误检测
    • 格式化选项

    编程方式读取

    Python:
    import json
    
    

    with open('data.json', 'r', encoding='utf-8') as f:

    data = json.load(f)

    print(data['name'])

    JavaScript:
    const fs = require('fs');
    
    

    const data = JSON.parse(fs.readFileSync('data.json', 'utf8'));

    console.log(data.name);

    JSON 文件最佳实践

    1. 使用有意义的文件名

    选择描述性名称:

    • user-settings.json
    • database-config.json
    • file1.json
    • temp.json

    2. 维护一致的结构

    为同一类型的文件保持一致的结构:

    {
    

    "metadata": {},

    "data": {},

    "config": {}

    }

    3. 使用版本控制

    在 JSON 文件中包含版本信息:

    {
    

    "version": "2.1.0",

    "schemaVersion": "1.0",

    "data": {}

    }

    4. 验证 JSON 语法

    在部署前始终验证 JSON 文件:

    • 使用在线验证器
    • 使用 IDE 的内置验证
    • 编写自动化测试

    5. 适当格式化

    开发环境:
    • 使用缩进(2 或 4 个空格)
    • 添加换行符以提高可读性

    生产环境:
    • 压缩 JSON 以减小文件大小
    • 删除不必要的空白字符

    6. 记录模式

    对于复杂的 JSON 文件,创建模式文档:

    {
    

    "$schema": "http://json-schema.org/draft-07/schema#",

    "type": "object",

    "properties": {

    "name": {"type": "string"},

    "age": {"type": "number"}

    },

    "required": ["name"]

    }

    常见的 JSON 文件错误

    1. 缺少逗号

    错误:

    {
    

    "name": "张三"

    "age": 30

    }

    正确:

    {
    

    "name": "张三",

    "age": 30

    }

    2. 尾随逗号

    错误:

    {
    

    "name": "张三",

    "age": 30,

    }

    正确:

    {
    

    "name": "张三",

    "age": 30

    }

    3. 单引号

    错误:

    {
    

    'name': 'Zhang San'

    }

    正确:

    {
    

    "name": "Zhang San"

    }

    4. 未加引号的键

    错误:

    {
    

    name: "Zhang San"

    }

    正确:

    {
    

    "name": "Zhang San"

    }

    JSON 文件安全性

    1. 验证输入

    解析 JSON 文件时始终验证内容:

    import json
    
    

    try:

    with open('data.json', 'r') as f:

    data = json.load(f)

    # 验证数据结构

    assert 'name' in data

    assert isinstance(data['age'], int)

    except (json.JSONDecodeError, AssertionError) as e:

    print(f"无效的 JSON 文件:{e}")

    2. 避免敏感数据

    不要在 JSON 文件中存储敏感信息:

    • ❌ 密码
    • ❌ API 密钥
    • ❌ 个人身份信息
    • ✅ 使用环境变量或安全保管库

    3. 文件权限

    为 JSON 文件设置适当的文件权限:

    # Linux/Mac
    

    chmod 600 config.json # 仅所有者可读写

    JSON 文件工具

    编辑器和 IDE

    • VS Code:出色的 JSON 支持和扩展
    • JetBrains IDE:内置 JSON 编辑器
    • Sublime Text:快速且可自定义

    在线工具

    • JSON Formatter:格式化和验证
    • JSON Editor Online:可视化编辑
    • JSON Diff:比较 JSON 文件

    命令行工具

    • jq:JSON 处理器
    • fx:交互式 JSON 查看器
    • json-server:用于原型设计的模拟 REST API

    JSON 文件与其他格式的比较

    JSON vs YAML

    | 特性 | JSON | YAML |

    |------|------|------|

    | 可读性 | 良好 | 极好 |

    | 注释 | 不支持 | 支持 |

    | 数据类型 | 有限 | 丰富 |

    | 解析速度 | 更快 | 较慢 |

    | 用例 | API、数据 | 配置 |

    JSON vs XML

    | 特性 | JSON | XML |

    |------|------|------|

    | 冗长程度 | 简洁 | 冗长 |

    | 可读性 | 更好 | 一般 |

    | 数据类型 | 原生 | 基于字符串 |

    | 解析 | 更快 | 较慢 |

    | 元数据 | 有限 | 丰富 |

    JSON vs CSV

    | 特性 | JSON | CSV |

    |------|------|------|

    | 结构 | 层次化 | 表格化 |

    | 嵌套 | 支持 | 不支持 |

    | 数据类型 | 保留 | 全部为字符串 |

    | 大小 | 较大 | 较小 |

    | 用例 | API | 数据导出 |

    现实世界的 JSON 文件示例

    VS Code 设置

    {
    

    "editor.fontSize": 14,

    "editor.tabSize": 2,

    "files.autoSave": "afterDelay",

    "workbench.colorTheme": "Dark+",

    "extensions.ignoreRecommendations": false

    }

    ESLint 配置

    {
    

    "env": {

    "browser": true,

    "es2021": true

    },

    "extends": "eslint:recommended",

    "rules": {

    "semi": ["error", "always"],

    "quotes": ["error", "double"]

    }

    }

    tsconfig.json

    {
    

    "compilerOptions": {

    "target": "ES2020",

    "module": "commonjs",

    "strict": true,

    "esModuleInterop": true,

    "skipLibCheck": true,

    "forceConsistentCasingInFileNames": true

    },

    "include": ["src/*/"],

    "exclude": ["node_modules"]

    }

    结论

    JSON 文件是现代软件开发中的基本构建块。它们的简洁性、灵活性和广泛支持使其成为配置、数据存储和系统间通信的理想选择。

    通过遵循本指南中概述的最佳实践,您可以有效地创建、管理和使用 JSON 文件。无论您是在配置应用程序、存储数据还是在服务之间交换信息,了解 JSON 文件都是一项宝贵的技能。

    记住始终验证您的 JSON,保持一致的格式,并为长期维护记录您的文件结构。随着经验的积累,使用 JSON 文件将成为您开发工作流程中的第二天性。

    Share:

    相关文章

    Read in English