LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

一封JSON的告白书:当我决定成为程序员世界的通用语言

admin
2025年9月20日 10:10 本文热度 103

从语法结构到实战应用,一篇文章彻底搞懂JSON

一、相遇:我是谁?

我叫JSON,全名是JavaScript Object Notation。虽然我的名字里有"JavaScript",但我并不属于任何编程语言。我是一种轻量级的数据交换格式,本质上是一个字符串。

我的诞生是为了解决不同系统之间的数据交换问题。想象一下,一个Java程序和一个Python程序需要交换数据,就像两个说不同语言的人需要交流一样。而我,就是他们的通用翻译

我的基本长相是这样的:

{  "name": "JSON",  "age": 25,  "isUseful": true,  "hobbies": ["data", "exchange", "programming"]}



二、内在:我的结构之美

1. 两种基本结构

我的世界很简单,只有两种结构:对象数组

对象(Object) 用大括号 {} 包裹,由键值对组成:

{  "key": "value",  "name": "张三",  "age": 30}

数组(Array) 用中括号 [] 包裹,是值的有序集合:

["apple""banana""orange"]

2. JSON数组的特殊之处

JSON数组就是数组结构在JSON中的具体应用。它可以包含任何类型的数据,甚至是嵌套结构:

[  {    "name": "小明",    "courses": ["数学", "英语"]  },  {    "name": "小红",     "courses": ["语文", "物理"]  }]

这种结构非常适合表示列表数据,如商品列表、用户列表等。



三、相处:如何与我共事

1. 两大顶层函数

在JavaScript中,你需要通过两个顶层函数来与我互动:

JSON.parse() - 将JSON字符串转换为JavaScript对象:

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

JSON.stringify() - 将JavaScript对象转换为JSON字符串:

const obj = {name"张三"age30};const jsonString = JSON.stringify(obj);console.log(jsonString); // 输出:'{"name":"张三","age":30}'

之所以叫"顶层函数",是因为它们直接挂在全局JSON对象上,无需额外引入。

2. 网络请求中的Header配置

当你要通过网络发送我时,需要正确设置HTTP头:

fetch('https://api.example.com/data', {  method'POST',  headers: {    'Content-Type''application/json' // 关键:声明数据格式  },  body: JSON.stringify({name"张三"}) // 先转换为字符串});

设置 'Content-Type': 'application/json' 是为了告诉服务器:"我发送的是JSON格式的数据,请按此格式解析"。



四、注意事项:与我相处的礼仪

1. 键名必须用双引号:{"name": "张三"}  {name: "张三"} ❌

2. 不支持注释:我不能像代码那样添加注释

3. 尾随逗号禁止:最后一个属性后不能有逗号

4. 数据类型有限:我只支持字符串、数字、布尔值、null、对象和数组

5. 安全性:解析来自不可信源的JSON数据时需要谨慎



五、实战演练:完整案例

让我们通过一个电商场景来综合运用所有知识点:

场景: 获取用户购物车信息并提交订单

// 1. 服务器返回的JSON数据(字符串格式)const responseFromServer = `{  "user": {    "id"1001,    "name""张三",    "vip"true  },  "cart": [    {      "productId""P001",      "name""智能手机",      "price"2999,      "quantity"1    },    {      "productId""P002"      "name""蓝牙耳机",      "price"399,      "quantity"2    }  ],  "total"3797}`;
// 2. 使用JSON.parse()解析数据const data = JSON.parse(responseFromServer);
// 3. 访问和操作数据console.log(`欢迎回来,${data.user.name}!`);console.log(`您的购物车中有${data.cart.length}件商品`);
// 4. 修改数据data.cart.push({  productId"P003",  name"保护壳",  price59,  quantity1});
// 5. 使用JSON.stringify()准备发送数据const updatedCart = JSON.stringify(data.cart);
// 6. 发送请求并设置Headerfetch('https://api.example.com/updateCart', {  method'POST',  headers: {    'Content-Type''application/json',    'Authorization''Bearer your-token-here'  },  body: updatedCart});



六、总结与练习

小练习: 基于上面的案例,请尝试:

1. 如何获取第一件商品的名称?

2. 如何计算所有商品的总数量?

3. 如果提交订单失败,可能的原因有哪些?(从JSON格式和Header设置角度考虑)

JSON作为现代Web开发的基石,几乎无处不在。从API接口到配置文件,从数据存储到网络传输,我都扮演着重要角色。

希望这篇文章能帮助你更好地理解我,并在今后的开发工作中得心应手。记住,与我相处的关键就是:规范、谨慎、多练习!


该文章在 2025/9/20 10:50:05 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved