开发者必看!JSON 必知必会的关键要点

存储 存储架构
什么是 JSON?JSON 是一种用于存储和交换数据的文本格式,易于理解,并且与 JavaScript 的对象语法十分相似。

JSON,全称为 JavaScript Object Notation,是一种轻量级的数据交换格式,已成为 Web API 和现代应用程序中的通用语言。它简单直观、易于阅读,并且可以无缝跨编程语言使用。无论是处理 REST API、配置文件还是存储数据,JSON 随处可见!

那么,JSON 到底是什么?如何操作它?让我们一步步深入了解 JSON 的世界吧。

什么是 JSON?

JSON 是一种用于存储和交换数据的文本格式,易于理解,并且与 JavaScript 的对象语法十分相似。

以下是一个 JSON 示例:

{
  "name": "John Doe",
  "age": 30,
  "isDeveloper": true,
  "skills": ["JavaScript", "Python", "Java"],
  "address": {
    "city": "New York",
    "zip": "10001"
  }
}

JSON 的主要特点:

  • 轻量级:非常适合数据交换。
  • 基于文本:易于阅读、编写和解析。
  • 语言无关:几乎所有编程语言都支持。
  • 结构化:数据以键值对的形式存储。

JSON 可执行的操作

解析 JSON

将 JSON 字符串转换为 JavaScript 对象。

示例:

const jsonString = '{"name":"John", "age":30}';
const user = JSON.parse(jsonString);
console.log(user.name); // 输出:John
console.log(user.age);  // 输出:30

对象转为 JSON 字符串

将 JavaScript 对象转换为 JSON 字符串。

示例:

const user = {
  name: "Jane",
  age: 25,
  isDeveloper: true
};
const jsonString = JSON.stringify(user);
console.log(jsonString);
// 输出:{"name":"Jane","age":25,"isDeveloper":true}

访问 JSON 数据

通过点语法或中括号语法访问 JSON 数据。

示例:

const user = {
  name: "Alex",
  skills: ["HTML", "CSS", "JavaScript"]
};
console.log(user.name);        // 输出:Alex
console.log(user.skills[2]);   // 输出:JavaScript

修改 JSON 数据

动态更新 JSON 数据。

示例:

const user = {
  name: "Mike",
  age: 29
};
user.age = 30;  // 修改 age
user.city = "Los Angeles";  // 添加新键
console.log(user);
// 输出:{name: "Mike", age: 30, city: "Los Angeles"}

遍历 JSON

通过循环访问 JSON 数组或对象。

示例:

const users = [
  { name: "Alice", age: 28 },
  { name: "Bob", age: 35 },
  { name: "Charlie", age: 22 }
];
users.forEach(user => {
  console.log(`${user.name} 的年龄是 ${user.age} 岁。`);
});
// 输出:
// Alice 的年龄是 28 岁。
// Bob 的年龄是 35 岁。
// Charlie 的年龄是 22 岁。

验证 JSON

使用 try-catch 检查 JSON 字符串是否格式正确。

示例:

const jsonString = '{"name": "John", "age": 30}';
try {
  const data = JSON.parse(jsonString);
  console.log("有效的 JSON:", data);
} catch (error) {
  console.error("无效的 JSON:", error.message);
}

JSON 的实际应用

API 响应:

当你请求 API 时,通常会以 JSON 格式返回数据。

示例:

{
  "status": "success",
  "data": {
    "id": 1,
    "name": "John",
    "role": "Developer"
  }
}

配置文件:

许多工具和库都使用 JSON 来配置。

例如,Node.js 项目的 package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "start": "node app.js",
    "test": "jest"
  }
}

数据存储:

JSON 常用于数据库中保存数据,例如 MongoDB。

JSON 的优缺点

优点:

简单易懂。

受到大多数编程语言支持。

可读性强。

非常适合用于 API 和配置文件。

缺点:

数据类型有限(例如,不支持日期或 undefined)。

性能不如 Protobuf 等二进制格式。

不支持注释(如果需要注释,可使用 YAML)。

JSON 的隐藏功能

自定义 stringify 函数:

通过 JSON.stringify 的 replacer 函数控制输出格式。

示例:

const user = { name: "John", password: "1234" };
const jsonString = JSON.stringify(user, (key, value) => {
  return key === "password" ? undefined : value;
});
console.log(jsonString); 
// 输出:{"name":"John"}

格式化输出:

通过 JSON.stringify 的 space 参数添加缩进,提升可读性。

示例:

const user = { name: "Alice", age: 25 };
console.log(JSON.stringify(user, null, 2));
// 输出:
// {
//   "name": "Alice",
//   "age": 25
// }

附加:JSON 与 XML 对比

图片

总结:

为什么 JSON 如此流行?

由于其简单性和通用性,JSON 已成为现代开发的基石。不管是处理 API、配置文件,还是数据库,掌握 JSON 操作会让你在开发中更具竞争力!

责任编辑:武晓燕 来源: 路条编程
相关推荐

2024-01-10 18:01:22

编程技巧Java 12

2023-11-08 18:01:53

硬重置Git命令

2014-02-09 10:30:17

Python程序员工具

2023-11-21 20:15:10

Git命令开发

2013-07-18 17:22:07

Android开发资源Android开发学习Android开发

2013-05-06 15:41:30

Android开发资源

2024-07-26 08:32:44

panic​Go语言

2011-12-01 09:00:12

Android提升开发性能要点

2012-03-05 10:01:43

移动开发

2020-07-10 07:58:14

Linux

2015-12-11 14:38:54

开发快速开发工具

2024-11-04 06:30:00

文本匹配模式Python开发

2024-11-15 11:11:48

2012-05-14 18:35:20

Windows Pho

2010-12-06 09:06:09

2016-01-05 13:43:37

谷歌Java竞争

2024-01-03 07:56:50

2011-07-08 14:14:13

Web服务器

2022-05-18 09:01:19

JSONJavaScript

2018-10-26 14:10:21

点赞
收藏

51CTO技术栈公众号