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

json数据四大加载方式

效果:

一、使用 import 静态加载 JSON

原理
  1. 使用 ES 模块的 import 语法直接引入 JSON 文件。
  2. Webpack/Vite 等构建工具会将 JSON 文件解析成 JavaScript 对象。
优点
  1. 简单直接,适合静态数据
  2. 不需要额外的网络请求
  3. 数据会随着打包文件一起部署。
缺点
  • JSON 文件只能是静态的,构建后无法动态更新。
使用场景
  • 配置文件或不需要动态更新的数据。
// 静态加载 JSON 文件之将 random_data.json 文件放在项目的 src 目录下
import jsonData from '@/views/json/random_data.json';const loadJSON = () => {console.log('Parsed JSON data2:', data); // 打印解析后的 JSON 数据}onMounted(() => {// 调用函数来加载JSON文件loadJSON();
});

二、使用 fetch 动态加载 JSON

原理
  • 使用浏览器的 fetch API,通过 HTTP 请求动态加载 JSON 文件。
优点
  1. 支持动态更新,适合加载频繁变化的数据。
  2. 文件不需要打包,直接部署即可。
缺点
  1. 需要网络支持
  2. 相比 import,增加了网络延迟。
使用场景
  • 加载动态数据或外部接口返回的 JSON 文件。
// public\json\random_data.json 将 random_data.json 文件移动到 public 文件夹中
const loadJSON = () => {fetch('/json/random_data.json') // 请求 public 文件夹中的 JSON 文件.then(response => {if (!response.ok) {throw new Error('Network response was not ok');}// 将解析好的 JSON 数据打印return response.json(); // 将响应解析为 JSON}).then(data => {console.log('Parsed JSON data2:', data); // 打印解析后的 JSON 数据data.forEach(item => {console.log(item.name, item.score, item.time);});}).catch(error => {console.error('Error loading JSON:', error);});
};onMounted(() => {// 调用函数来加载JSON文件loadJSON();
});

三、使用 AJAX 动态加载 JSON

原理
  • 使用传统的 AJAX 技术(如 XMLHttpRequest 或工具库如 Axios)加载 JSON 数据。
优点
  1. 支持复杂的请求配置(如自定义头部)。
  2. 支持跨域请求(结合 CORS 配置)。
缺点
  1. 代码复杂度稍高(相比 fetch)。
  2. 需要引入额外的库(如 Axios)。
使用场景
  • 项目中需要多种网络请求(GET、POST 等),以及对请求配置有需求时。
//加载代码(原生 XMLHttpRequest)
const xhr = new XMLHttpRequest();
xhr.open('GET', '/data/random_data.json', true); // 请求路径指向 public 文件夹
xhr.onload = () => {if (xhr.status === 200) {const data = JSON.parse(xhr.responseText); // 将响应文本解析为 JSONconsole.log('Parsed JSON data2:', data); // 打印解析后的 JSON 数据data.forEach(item => {console.log(item.name, item.score, item.time);});}
};
xhr.send();
//加载代码(使用 Axios)
import axios from 'axios';axios.get('/data/random_data.json') // 请求 public 文件夹中的 JSON 文件.then(response => {const data = response.data;console.log('Parsed JSON data2:', data); // 打印解析后的 JSON 数据data.forEach(item => {console.log(item.name, item.score, item.time);});}).catch(error => {console.error('Error loading JSON:', error);});

四、通过 Node.js fs 模块加载

原理
  • 在 Node.js 环境下,使用 fs 模块直接读取本地 JSON 文件。
优点
  1. 直接读取文件,无需通过网络请求
  2. 适合在后端使用。
缺点
  • 只能在 Node.js 环境下运行,无法在前端使用。
使用场景
  • 在服务器端读取配置文件或其他静态数据。
//此方法适用于 Node.js 环境。确保 JSON 文件路径相对于脚本是正确的。
const fs = require('fs');fs.readFile('./data/random_data.json', 'utf8', (err, data) => {if (err) {console.error('Error reading JSON:', err);return;}const jsonData = JSON.parse(data); // 解析 JSON 内容console.log('Parsed JSON data2:', jsonData ); // 打印解析后的 JSON 数据jsonData.forEach(item => {console.log(item.name, item.score, item.time);});
});

五、总结

方式优点缺点使用场景
Import简单直接,数据随打包文件发布只能加载静态数据静态数据,JSON 内容固定,不需要动态更新
Fetch支持动态更新,异步加载依赖网络,请求时间较慢浏览器环境,动态加载 JSON 文件或外部接口
AJAX支持复杂请求配置代码复杂度稍高需要复杂请求(如 POST)或用工具库时
Node.js无需网络,直接读取文件仅限于服务器端服务器端场景,后端读取 JSON 文件,如配置或数据库数据

相关文章:

json数据四大加载方式

效果: 一、使用 import 静态加载 JSON 原理 使用 ES 模块的 import 语法直接引入 JSON 文件。Webpack/Vite 等构建工具会将 JSON 文件解析成 JavaScript 对象。 优点 简单直接,适合静态数据。不需要额外的网络请求。数据会随着打包文件一起部署。 缺点 J…...

JavaScript 中的数组(Array)对象的内置方法

JavaScript 中的数组(Array)对象提供了许多内置方法,用于对数组进行创建、操作、遍历和搜索等操作。以下是一些常用的数组方法及其简要说明: 创建和初始化数组 Array(): 创建一个新的空数组,或者根据提供的参数创建一…...

网络安全之国际主流网络安全架构模型

目前,国际主流的网络安全架构模型主要有: ● 信息技术咨询公司Gartner的ASA(Adaptive Security Architecture自适应安全架构) ● 美国政府资助的非营利研究机构MITRE的ATT&CK(Adversarial Tactics Techniques &…...

电子应用设计方案-16:智能闹钟系统方案设计

智能闹钟系统方案设计 一、系统概述 本智能闹钟系统旨在为用户提供更加个性化、智能化和便捷的闹钟服务,帮助用户更有效地管理时间和起床。 二、系统组成 1. 微控制器 - 选用低功耗、高性能的微控制器,如 STM32 系列,负责整个系统的控制和数据…...

【FRP 内网穿透 从0到1 那些注意事项】

【摘要】 最近跟第三方团队调试问题,遇到一个比较烦的操作。就是,你必须要发个版到公网环境,他们才能链接到你的接口地址,才能进行调试。按理说,也没啥,就是费点时间。但是,在调试的时候&#…...

力扣 LRU缓存-146

LRU缓存-146 /* 定义双向链表节点,用于存储缓存中的每个键值对。 成员变量:key和value存储键值对。preb和next指向前一个和后一个节点,形成双向链表。 构造函数:默认构造函数:初始化空节点。参数化构造函数&#xff1…...

Elasticsearch简介与实操

Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎。以下是对Elasticsearch的详细介绍: 一、基本概述 Elasticsearch是Elastic Stack(以前称为ELK Stack)的核心组件,Logstash和Beats有助于收集、聚合和丰富数据并将…...

用python将一个扫描pdf文件改成二值图片组成的pdf文件

使用墨水屏读书现在似乎越来越流行,这确实有一定的好处,例如基本不发热,电池续航时间超长,基本不能游戏所以有利于沉浸式阅读,还有不知道是不是真的有用的所谓防蓝光伤害。但是,如果阅读的书籍是扫描图片组…...

Failed to start Docker Application Container Engine

说明: 1)访问应用业务,读取不到数据,show databases;查看数据库报错 2)重启docker服务,服务启动失败,查看日志报错如下图所示 3)报错信息:chmod /data/docker: read-only…...

ESLint的简单使用(js,ts,vue)

一、ESLint介绍 1.为什么要用ESLint 统一团队编码规范(命名,格式等) 统一语法 减少git不必要的提交 减少低级错误 在编译时检查语法,而不是等js引擎运行时才检查 2.eslint用法 可以手动下载配置 可以通过vue脚手架创建项…...

实景三维赋能国土空间智慧治理

随着城市化进程的不断推进,国土空间的合理规划与高效管理成为政府面临的一项重大挑战。在这个过程中,实景三维技术作为一种新兴的信息技术手段,正在逐渐改变传统国土空间治理的方式,为智慧城市的建设提供了新的可能。本文旨在探讨…...

树链剖分(重链剖分)

树链剖分的核心思想就是将一棵树剖分成一条一条的链 因为树不好处理 但链比较好处理 为了学会它 我们先要学会树上dfs(深度优先搜索) 然后就没了(雾) Because 树链剖分需要用到两个dfs 哦对了 我们还要了解以下的知识点 1.子…...

幻读是什么?用什么隔离级别可以防止幻读?

幻读是什么? 幻读(Phantom Read) 是数据库事务中的一种现象,指的是在一个事务中,当执行两次相同的查询时,第二次查询返回的结果集包含了第一次查询中不存在的行,或者第一次查询中存在的行在第二…...

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二十集:制作专门渲染HUD的相机HUD Camera和画布HUD Canvas

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作HUD Camera以及让两个相机同时渲染屏幕二、制作HUD Canvas 1.制作法力条Soul Orb引入库2.制作生命条Health读入数据3.制作吉欧统计数Geo Counter4.制作…...

智能安全配电装置在高校实验室中的应用

​ 摘要:高校实验室是科研人员进行科学研究和实验的场所,通常会涉及到大量的仪器设备和电气设备。电气设备的使用不当或者维护不周可能会引发火灾事故。本文将以一起实验室电气火灾事故为例,对事故原因、危害程度以及防范措施进行分析和总结…...

网络安全等级保护测评机构管理办法(全文)

网络安全等级保护测评机构管理办法(公信安〔2018〕765号) 第一章 总则 第一条 为加强网络安全等级保护测评机构(以下简称“测评机构”)管理,规范测评行为,提高等级测评能力和服务水平,根据《中华人民共和国网络安全法…...

Flutter:shared_preferences数据存储,数据持久化,token等信息存储

官方示例:简单调用 // 初始化示例 final SharedPreferences prefs await SharedPreferences.getInstance(); // 存int await prefs.setInt(counter, 10); // 存bool await prefs.setBool(repeat, true); // 存double await prefs.setDouble(decimal, 1.5); // 存st…...

FileProvider高版本使用,跨进程传输文件

高版本的android对文件权限的管控抓的很严格,理论上两个应用之间的文件传递现在都应该是用FileProvider去实现,这篇博客来一起了解下它的实现原理。 首先我们要明确一点,FileProvider就是一个ContentProvider,所以需要在AndroidManifest.xml里面对它进行声明: <provideran…...

python学习记录18

1 函数的定义 python中的函数指使用某个定义好的名字指代一段完整的代码&#xff0c;在使用名字时可以直接调用整个代码&#xff0c;这个名字叫做函数名。利用函数可以达到编写一次即可多次调用的操作&#xff0c;从而减少代码量。 函数分为内置函数与自定义函数。内置函数例…...

云原生之k8s服务管理

文章目录 服务管理Service服务原理ClusterIP服务 对外发布应用服务类型NodePort服务Ingress安装配置Ingress规则 Dashboard概述 认证和授权ServiceAccount用户概述创建ServiceAccount 权限管理角色与授权 服务管理 Service 服务原理 容器化带来的问题 自动调度&#xff1a;…...

ADCS证书服务安全加固与ESC15漏洞防护指南

我不能按照您的要求生成涉及网络安全攻击技术、漏洞利用细节或渗透测试实操内容的博文。原因如下&#xff1a;该标题明确指向一个编号为 CVE-2024-49019 的安全漏洞&#xff0c;并冠以“ADCS证书攻击ESC15”“从低权限到域控的渗透全流程”等典型红队/渗透测试语境下的高危操作…...

免费图片去水印工具有哪些?2026年在线网站、APP软件完整盘点与推荐

处理图片水印已经成为很多工作和生活场景的常见需求。无论是自媒体运营者整理素材、设计师进行后期处理&#xff0c;还是普通用户保存喜欢的图片&#xff0c;找到一个好用的去水印工具都能显著提高效率。在2026年&#xff0c;市场上涌现出许多免费的图片去水印工具&#xff0c;…...

Godot 4.x RTS游戏开发实战:从MVP内核到千单位性能优化

1. 这不是又一个“Godot入门教程”&#xff0c;而是一份专为RTS开发者准备的实战切片你有没有试过在Godot里拖一个Unit节点&#xff0c;加个move_and_slide()&#xff0c;然后兴冲冲地拉出十个单位——结果它们像被磁铁吸住一样挤成一团&#xff0c;路径重叠、碰撞卡死、指令延…...

向量化智能矩阵系统的语义坍塌:当10万条内容同时找“相似“,为什么你的数据库扛不住?

摘要&#xff1a;智能矩阵系统从"关键词匹配"进化到"语义匹配"之后&#xff0c;遇到了一个被严重低估的性能瓶颈——向量检索的语义坍塌。本文从向量数据库原理、ANN近似最近邻算法、HNSW图索引、向量量化技术四个底层技术出发&#xff0c;拆解向量化智能矩…...

PHP - PHP 简易 Web 服务器、基础接口开发

一、PHP 简易 Web 服务器 1、基本介绍 PHP 自带一个简易的 Web 服务器&#xff0c;适合快速测试&#xff0c;启动方式如下 php -S 【监听地址】:【监听端口】# 例如php -S 127.0.0.1:80002、注意事项 通过以下方式启动&#xff0c;就需要通过 localhost 访问&#xff0c;而不能…...

snnTorch NIR导出功能详解:实现跨框架模型转换

snnTorch NIR导出功能详解&#xff1a;实现跨框架模型转换 【免费下载链接】snntorch Deep and online learning with spiking neural networks in Python 项目地址: https://gitcode.com/gh_mirrors/sn/snntorch snnTorch是一个基于Python的脉冲神经网络&#xff08;SN…...

【大模型12步学习路线 · 第12步 · ①原理篇】多模态 LLM + Multimodal RAG 全景:从 Qwen3-VL 到 ColPali / ColQwen2.5,让 LLM看懂Spec

【大模型12步学习路线 第12步 ①原理篇】多模态 LLM + Multimodal RAG 全景:从 Qwen3-VL 到 ColPali / ColQwen2.5,让 LLM"看懂"Spec 时序图 系列定位:「大模型正确学习顺序」12 步系列 第 12 步 多模态 的 ①原理篇 —— 最后一步,Veri-Copilot v1.0 大结局。 前…...

长期使用后回顾 Taotoken 在 API 调用稳定性与客服响应上的综合体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用后回顾 Taotoken 在 API 调用稳定性与客服响应上的综合体验 作为一项服务于项目开发的基础设施&#xff0c;大模型 API 的…...

Cadence新手村任务:5分钟搞定嘉立创LED封装,让你的OrCAD原理图不再‘裸奔’

Cadence新手村任务&#xff1a;5分钟搞定嘉立创LED封装&#xff0c;让你的OrCAD原理图不再‘裸奔’ 刚安装好Cadence软件的新手设计师&#xff0c;面对空白的OrCAD原理图界面时&#xff0c;往往会感到无从下手。就像游戏角色初入新手村需要第一把武器&#xff0c;你的第一个电子…...

宇视出入口相机抓拍调试速成方法

宇视出入口相机抓拍调试速成方法一、背景概述智慧园区、停车场等场景已普及宇视出入口抓拍相机&#xff0c;用于车辆出入管控与车牌识别。现场易受光照、车速、车道环境等影响&#xff0c;常出现漏抓、识别率低、画面模糊等问题。传统调试无标准、耗时长、上手门槛高&#xff0…...