问题来源,作者使用 Golang 实现的一款通用型 JSON 数据提取工具,支持自动识别 JSON 数据节点并有序提取为 CSV 文件。
看到评论回复说 html 单文件,自带 UI....
功能已实现,界面缺少美化,但小巧,分析给需要的朋友
数据路径:设置 Json 中数据所处路径,如'root.topics.data' 'data.items' ...
字段解析:为空则为全量解析,自动识别字段头。可自定义 排序、映射、按需导出 csv 文件。
添加 csv 头:选择框 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"}}}}
数据位于"data.items"多级节点下,则填写 [数据路径] ,如data.items
本地测试,秒级处理 20M json 文件,Chrome 版本 114.0.5735.134
使用JS 动态创建函数,会遇到和 eval() 类似的的安全问题和(相对较小的)性能问题。与 eval() 不同的是,Function 构造函数创建的函数只能在全局作用域中运行。 MDN Function介绍
1.{title: "two", 'price': 92}
2.{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) {
console.warn("解析处理失败", e);
return null;
}
}
支持多个 api地址发起Ajax get请求处理数据。(注:跨域请求需关闭 浏览器同源策略)
1
faketemp 2023-06-26 19:40:51 +08:00 via iPhone
继续 不要停 卷起来 brosヾノ≧∀≦)o
|
3
haoxuexiaoyao 2023-06-27 11:39:23 +08:00
有没有循环网页 json 链接转换的方式
|
4
9yue OP @haoxuexiaoyao 会 html js 的话,通过 ajax 请求 连接,拿到 json 数据,使用此工具的 JS 方法 很简单就可以实现此功能。
|
5
haoxuexiaoyao 2023-06-27 15:33:55 +08:00
有没有 python 里面这样类似好用的 哈哈 经常用 python 处理 有的挺麻烦处理
|
6
9yue OP @haoxuexiaoyao 我可以稍后在这上面 加上你说的功能。python 处理这种数据,能自己会编码 也是 so easy, 不然就看 能否 找到现成的轮子。
|
7
wxf666 2023-07-06 21:54:34 +08:00
这个 json 转换不对呀:
```json [{"a": 1, "b": [2, 3, 4]}, {"a": 5, "c": 6}] ``` 有两个问题: 1. 第一行的 b 数组消失了,变成了 2 2. 第二行的 c 没有解析 |