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

js对象转json文件

目录

      • 需求
      • 1.首先寻找类似需求的数据
      • 2.对数据进行转换
      • 3.将转换后的数据转为json文件
      • 4.完整代码

需求

需求:在做项目时,遇到了需要制作地址列表的功能,这一般都会用到一些开源的组件库,但是有个问题是不同组件库之间的城市列表数据结构不一样,虽然可以找到很多的城市列表的数据,但是都不一定是我们想要的,所以最好就是对已有数据结构进行转换,转换成我们需要的结构然后单独放在一个文件中(毕竟城市列表数据也比较多)。

1.首先寻找类似需求的数据

比如这种):

list: [{letter: "A",data: [{name: "阿巴嘎旗",city_pinyin: "abagaqi",city_id: 152522,py: "abgq",},{name: "阿坝县",city_pinyin: "abaxian",city_id: 513231,py: "abx",},......],},{letter: "B",data: [{name: "八步区",city_pinyin: "babuqu",city_id: 451102,py: "bbq",},{name: "巴楚县",city_pinyin: "bachuxian",city_id: 653130,py: "bcx",},......],},......]

但是我们需要的是这种结构的数据:

{"A": [{ "areaId": 152522, "areaName": "阿巴嘎旗" },{ "areaId": 513231, "areaName": "阿坝县" },.....],"B": [{ "areaId": 451102, "areaName": "八步区" },{ "areaId": 653130, "areaName": "巴楚县" },......],......
}

2.对数据进行转换

具体需要什么样的数据格式看你的需求。

let cityTransList = {};
// list为上面所说的类似数据
list.map((item) => {let value = [];item.data.map((item) => {let oneCity = {};oneCity.areaId = item.city_id;oneCity.areaName = item.name;value.push(oneCity);});cityTransList[item.letter] = value;
});

3.将转换后的数据转为json文件

function exportJson(name, data) {let blob = new Blob([data]);let link = document.createElement("a");link.href = URL.createObjectURL(blob);link.download = name; //  下载的文件名link.click();
}exportJson("cityList.json", JSON.stringify(cityTransList));

4.完整代码

以下代码直接引入html中。

// 准备数据
const similarData = [...]// 转换数据
let cityTransList = {};
list.map((item) => {let value = [];item.data.map((item) => {let oneCity = {};oneCity.areaId = item.city_id;oneCity.areaName = item.name;value.push(oneCity);});cityTransList[item.letter] = value;
});// 另存为文件
function exportJson(name, data) {let blob = new Blob([data]);let link = document.createElement("a");link.href = URL.createObjectURL(blob);link.download = name; //  下载的文件名link.click();
}exportJson("cityList.json", JSON.stringify(cityTransList));
http://www.lryc.cn/news/158737.html

相关文章:

  • 【免费模板】2023数学建模国赛word+latex模板免费分享
  • 基于HBuilder X平台下的 驾校报名考试管理系统 uniapp 微信小程序3n9o5
  • 电商3D资产优化管线的自动化
  • Android 大图显示优化方案-加载Gif 自定义解码器
  • Leetcode.664 奇怪的打印机
  • 正中优配:散户怎么实现T+0?散户在股市上怎么变相T+0?
  • ZooInspector
  • 2023高教社杯 国赛数学建模B题思路 - 多波束测线问题
  • 【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(9 月 4 日论文合集)
  • 游戏优化注意点
  • 【unity3D】如何修改相机的默认视角
  • Docker的初级使用
  • minimumLineSpacing和minimumInteritemSpacing问题研究
  • 【操作系统】聊聊Linux内存工作机制
  • MySQL索引的类型有哪些?
  • 【JavaScript】在指定dom元素前面创建标签元素
  • ARMv8 TTBRx寄存器
  • C51智能小车(循迹、跟随、避障、测速、蓝牙、wifie、4g、语音识别)总结
  • 回归预测 | MATLAB实现PCA-BP主成分降维结合BP神经网络多输入单输出回归预测
  • Kubernetes(k8s)部署高可用多主多从的Redis集群
  • 算法专题:前缀和
  • bs4库爬取天气预报
  • l8-d8 TCP并发实现
  • 编写中间件以用于 Express 应用程序
  • 【2023年数学建模国赛】D题解题思路
  • python爬虫之正则表达式学习
  • 智慧能源方案:TSINGSEE青犀AI算法中台在能源行业的应用
  • 达梦数据库awr报告收集
  • c语言练习43:深入理解strcmp
  • NUC980webServer开发