当前位置: 首页 > 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.lryc.cn/news/576442.html

相关文章:

  • 【世纪龙科技】新能源汽车动力电池总成装调与检修教学软件
  • Python助力自动驾驶:深度学习模型优化全攻略
  • JavaScript中Object()的解析与应用
  • InfluxDB 3 Core最后值缓存深度实践:毫秒级响应实时数据的核心引擎
  • Linux 内存调优之 BPF 分析用户态小内存分配
  • scGPT-spatial 复现
  • 创建套接字时和填充地址时指定类型的异同
  • 测试用例设计方法汇总
  • Spring Cloud 微服务(负载均衡策略深度解析)
  • 【力扣 简单 C】121. 买卖股票的最佳时机
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(二)- 职位数据清洗与预处理
  • centos指令
  • Java 大视界 -- Java 大数据机器学习模型在金融市场高频交易策略优化与风险控制中的应用(327)
  • 买卖股票的最佳时机 II
  • Python 数据分析:numpy,抽提,整数数组索引
  • AtCoder AT_abc412_c [ABC412C] Giant Domino 题解
  • 《Go语言高级编程》玩转RPC
  • 《HarmonyOSNext应用防崩指南:30秒定位JS Crash的破案手册》
  • vue-28(服务器端渲染(SSR)简介及其优势)
  • 机器学习配置环境
  • C++算法学习专题:双指针
  • Linux离线搭建Redis (centos7)详细操作步骤
  • 在项目中如何巧妙使用缓存
  • SQL 子查询全位置解析:可编写子查询的 7 大子句
  • Flutter基础(路由页面跳转)
  • 布林带的使用
  • 展开说说:Android之ContentProvider源码浅析
  • 【数据结构】map/set模拟实现(红黑树作底层)
  • STM32HAL 旋转编码器教程
  • 1.2 基于蜂鸟E203处理器的完整开发流程