将返回的json数据存储为json文件

背景:想下载行政区域数据,网站:unpkg.com/[email protected]/dist/data.json 返回json数据

(代码由通义生成,此处仅作为记录)

工具类:

// src/utils/downloadData.js
export async function downloadData(url, filename) {
  try {
    const response = await fetch(url);
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    const data = await response.json();

    // 将数据转换为 JSON 字符串
    const jsonString = JSON.stringify(data, null, 2);

    // 创建 Blob 对象
    const blob = new Blob([jsonString], { type: 'application/json' });

    // 创建下载链接
    const urlObject = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = urlObject;
    a.download = filename;

    // 触发下载
    document.body.appendChild(a);
    a.click();

    // 清理
    document.body.removeChild(a);
    URL.revokeObjectURL(urlObject);
  } catch (error) {
    console.error('Error downloading data:', error);
  }
}

触发函数:

// 下载 JSON 数据的函数
const downloadJsonData = () => {
  const url = 'https://unpkg.com/[email protected]/dist/data.json';
  const filename = 'province-city-china.json';
  downloadData(url, filename);
}

按钮触发:

下载

你可能感兴趣的:(json)