Js HTML 实现的一款通用型JSON数据提取工具,支持自动识别JSON数据节点并有序提取为CSV文件。
Convenient JSON data extraction tool.
浏览器打开 json2csv.html, 支持json字符、json文件、以及连续的api地址请求(跨域请求需关闭浏览器同源策略。)
-
数据路径:设置Json中数据所处路径,如'root.topics.data' 'data.items' ...
-
字段解析:为空则为全量解析,自动识别字段头。可自定义 排序、映射、按需导出csv文件。
- 假设数据
- [{"id":1,"name":"张三","age":19},{"id":2,"name":"李四","age":20}]
- 按需排序 字段名逗号隔开(支持,隔开的字符串/数组格式)
- name,id,age / ["age","name","id"]
- 字段映射csv头 排序+按需导出 ,移除id列
- {name:"名字",age:'年龄'}
- 假设数据
-
添加csv头:选择框 csv第一行是否包含字段信息。
-
支持直接粘贴json字符串或拖拽上传json文件,生成为同名csv文件,支持多文件。
{"data":{"items":[{"title":"one","price":23},{"title":"two","price":92},{"title":"three","price":5623}]}}
{"data":{"items":{"1":{"title":"one","name":"test1"},"2":{"title":"two","name":"test2"},"3":{"title":"three","name":"test3"}}}}
使用动态创建函数,会遇到和 eval() 类似的的安全问题和(相对较小的)性能问题。与 eval() 不同的是,Function 构造函数创建的函数只能在全局作用域中运行。 MDN Function介绍
{data:{items:[{title:"one",price:23},{"title":"two","price":92}]}}
/**
* 小工具使用,存在的安全问题,可知可控。
* @param str
* @returns {null|*}
*/
function parseJson2(str) {
try {
return new Function('"use strict"; return '+str)();
} catch (e) {
addMsg("解析json失败")
console.warn("Function解析失败", e);
return null;
}
}
数据位于"data.items"多级节点下,则填写【数据路径】,如data.items
本地测试,秒级处理20M json文件,Chrome 版本 114.0.5735.134(正式版本) (64 位)
1.建数据缓存文件夹:C:\MyChromeUserData
2.建立快捷方式: 桌面 → 右键 → 新建 → 快捷方式 → 输入对象目标地址:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files --user-data-dir="C:\MyChromeUserData" --disable-web-security