当前位置: 首页 > news >正文

JSON简介及其应用

JSON简介及其应用

A Brief Introduction and Applications of JSON

By Jackson@ML

1. JSON的概念

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用键值对(key-value)的方式组织数据,语法类似JavaScript对象,易于人阅读和机器解析。

2. JSON的作用

JSON有几方面的作用如下:
• 在前后端数据交互中传输结构化数据
• 用于API响应与请求格式(如RESTful API)
• 常见于配置文件(如.json)和持久化存储格式

3. JSON的使用方法与编写步骤

1) 使用花括号 {} 表示对象
2) 使用中括号 [] 表示数组
3) 键用双引号包裹,值可以是字符串、数字、布尔值、数组或对象
4) 不允许注释

4. 代码示例

示例一: 以下是对某个人的对象特征描述的JSON格式。

{"name": "Jackson","age": 30,"languages": ["JavaScript", "Python", "Java"],"isActive": true
}

示例二: 以下是对某个团队成员记录的数组描述的JSON格式。

{
"employees":[{"firstName":"John", "lastName":"Doe"},{"firstName":"Anna", "lastName":"Smith"},{"firstName":"Peter", "lastName":"Jones"}
]
}

尽管示例一、示例二存储的对象信息不同,但可以看出共同点,以及对单个对象的键值对,和对单个对象单一键对应的字符串值组成的数组,均可以用JSON格式来表达。

5. JSON助力Web开发功能

JSON有效且广泛用于Web开发,它主要有以下特点:

1) 与服务器交换数据更高效,且比XML语言更加简洁;
2) 可在Web站点前端异步加载数据(例如:AJAX,fetch);
3) 是API调用的通用格式,并且支持跨平台和多语言开发。
4) 可用于本地存储(localStorage)。

6. 在JavaScript中的应用

我们可以看看在JavaScript语言中,用来解析和生成JSON的示例如下:

// 将对象转为JSON字符串
const jsonString = JSON.stringify(data);// 将JSON字符串转为JavaScript对象
const obj = JSON.parse(jsonString);

7. 在Node.js常见场景的应用

7.1 应用场景一:读取本地的JSON配置文件

许多Node.js后端项目使用JSON存储配置或数据。示例代码如下。
1) config.json

{"port": 3000,"db": "mongodb://localhost:27017/mydb"
}

2) JavaScript代码示例app.js

const fs = require('fs');// 读取 JSON 文件并解析为对象
const config = JSON.parse(fs.readFileSync('config.json', 'utf-8'));console.log(`Server will run on port: ${config.port}`);

7.2 应用场景二:与前端通信时,发送JSON响应

在构建Web API时,Node.js常用JSON响应客户端请求。

示例:利用Express构建JSON API

const express = require('express');
const app = express();app.get('/api/user', (req, res) => {res.json({id: 1,name: 'Jackson',active: true});
});app.listen(3000, () => {console.log('API server running on http://localhost:3000');
});
7.3 应用场景三:处理客户端提交的JSON数据
  • 首先,使用中间件解析前端POST请求中的JSON。示例代码如下:
app.use(express.json()); // 中间件app.post('/api/data', (req, res) => {const data = req.body;console.log('Received data:', data);res.send('Data received');
});
  • 其次,前端发送请求:
fetch('/api/data', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({name: 'Jackson', score: 100})
});

8. 连接MongoDB数据库的应用

MongoDB是典型的文档型数据库,在互联网崛起的今天,广泛应用于Web站点、数据库和大数据领域。

为了使用MongoDB,我们可以安装Python第三方库mongoose,执行以下命令即可完成安装(前提是已经安装Node.js且node包管理器npm可用):

$ npm install mongoose

完成安装后,可以使用mongoos来保存JSON数据,示例代码如下:

const mongoose = require('mongoose');// 1. 连接数据库
mongoose.connect('mongodb://localhost:27017/myapp', {useNewUrlParser: true,useUnifiedTopology: true
});// 2. 定义数据模型(Schema)
const UserSchema = new mongoose.Schema({name: String,age: Number,email: String
});
const User = mongoose.model('User', UserSchema);// 3. 插入 JSON 对象
const userData = {name: 'Jackson',age: 30,email: 'jackson@example.com'
};const newUser = new User(userData);
newUser.save().then(() => console.log('User saved to MongoDB'));

也可以查询JSON数据,示例代码如下:

User.find({ name: 'Jackson' }).then(users => {console.log('Found users:', users);
});

9. 小结

JSON 是一种轻量级、易读写的数据交换格式,采用键值对结构,广泛应用于 Web 开发。它与 JavaScript 原生兼容,支持对象、数组、字符串等数据类型。

在 Node.js 中,JSON 常用于配置管理、API 数据交互与文件读写;结合 MongoDB 使用时,JSON 可直接映射为文档结构,便于数据插入、查询与持久化,提升前后端通信与数据库操作的效率。


Web开发技术文章持续推出,欢迎关注、收藏和点赞👍。

您的认可,我的动力!😃

推荐阅读:

  1. 用Streamlit开发第一个Pythong应用程序
  2. 一分钟了解Transformer
  3. 一分钟了解Kubernetes
  4. 一分钟了解MCP
  5. 一分钟了解机器学习
  6. 一分钟了解大语言模型(LLM)
  7. 一分钟了解深度学习
http://www.lqws.cn/news/559549.html

相关文章:

  • 创客匠人解析:身心灵赛道创始人 IP 打造核心策略
  • 动捕关节数据采集系统设计与实现
  • Java安装与使用教程
  • 实现一个AI大模型当前都无法正确实现的基础二叉树读取算法
  • TCP 在高速网络下的大数据量传输优化:拥塞控制、效率保障与协议演进​
  • OpenAI:Let’s Verify Step by Step 解读
  • 权电阻网络DAC实现电压输出型数模转换Multisim电路仿真——硬件工程师笔记
  • Http请求参数的区别
  • 户外人像要怎么拍 ?
  • 行为型 - 责任链模式详解
  • gantt-task-react的改造使用
  • MCP基础知识一
  • 【原理图设计】5Vto3.7Vto1.5V电源板一
  • 基于Uniapp+SpringBoot+Vue 的在线商城小程序
  • 前端react面试题之实现网页多选搜索框
  • 变长字节的数字表示法vb224
  • 抽屉打印公共组件想要实现的打印预览样式效果
  • 个人日记本小程序开发方案(使用IntelliJ IDEA)
  • C语言---常见的字符函数和字符串函数介绍
  • 【EDA软件】【联合Modelsim 同步FIFO仿真】
  • FPGA原理结构
  • 用AI给AR加“智慧”:揭秘增强现实智能互动的优化秘密
  • FPGA设计的用户约束
  • 领域驱动设计(DDD)【23】之泛化:从概念到实践
  • Spring Cloud Gateway 实战:网关配置与 Sentinel 限流详解
  • win10部署本地LLM和AI Agent
  • NLP——RNN传统模型
  • Linux系统环境编程之进程1
  • Jina-Embeddings-V4:多模态向量模型的革命性突破与实战指南
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流