矩阵与 JSON 互转
转换所有处理都在浏览器本地完成,数据不上传服务器
把一段矩阵文本(`1, 2, 3` 一行,从 Excel、MATLAB、NumPy 里复制出来的那种)转成 JSON 的二维数组,或者反过来把 JSON 数组渲染成对齐的矩阵文本。与站内的表格转换不同,这里数值保持数值类型 —— 产物是 `[[1,2],[3,4]]` 而不是 `[["1","2"],["3","4"]]`。一份要拿去计算的矩阵,值是字符串还是数字,就是能不能直接用的问题。代价是 `007` 这类带前导零的单元格会变成 `7`;需要原样保留字符串的表格请用表格转换工具。行长度不一致时会报出第一处不一致的行号,而不是补齐或截断 —— 补出来的 0 和截掉的值都会让下游算出错的结果,而那个错误在数据里完全看不出来。
功能
- 两个方向:矩阵文本转 JSON 数组、JSON 数组渲染成矩阵文本
- 数值保持数值类型(数字就是数字,不是字符串)
- 逗号、制表符、空白、分号都能当分隔符,也可以自动判断
- 自动判断方向:以 [ 开头按 JSON 处理,否则按矩阵文本
- 行长度不一致时报出第一处不一致的行号
- 矩阵文本渲染成对齐的列:数字右对齐、文本左对齐,中英混排按显示宽度算
- 一维 JSON 数组当成只有一行,不是一个错误
- 往返可逆:文本转 JSON 再转回来,数值不变
- CRLF 与 LF 都接受
- 全部在浏览器本地完成,数据不外传
使用方法
- 把矩阵文本或 JSON 数组粘进输入框
- 方向通常不用选 —— 以 [ 开头会当 JSON 处理
- 分隔符认不出来时手动指定一个
- 复制结果
常见问题
- 它和「表格转换」有什么区别?
- 表格转换处理带表头的表格,值一律按字符串输出,因为 `007` 这样的前导零一旦被当成数字就会丢。这里处理的是没有表头、纯数值的矩阵,值按数字输出 —— 产物要喂给程序做计算,是字符串还是数字决定了能不能直接用。所以:要保留原始文本用表格转换,要拿到能算的数值矩阵用这个。
- 为什么 007 变成了 7?
- 因为这一列是数值矩阵的一部分,`007` 在这里被解释成数字 7。这是「数值保持数值类型」这条规则的必然代价 —— 两者不可能同时满足(JSON 里 `7` 与 `"007"` 是两种不同的值)。需要保住前导零的场合(编号、邮编、工号),请用表格转换工具,它的输出是一律按字符串的。
- 行列数不一样会怎样?
- 直接报错,并告诉你第几行与第 1 行不一致。矩阵的定义就是矩形,补齐或截断都会静默改掉数据:补 0 会让平均值算错、截断会让一整列消失,而这两种错误在数据本身里看不出来。同样地,JSON 那边如果 `[[1,2],3]` 这种「一半是数组一半是单个值」的形状,也会报出来 —— 它不满足任何一种合法形状。
- 为什么制表符分隔时不补齐列宽?
- 因为 `\t` 本来就是用来对齐的,再叠一层空格只会让产物在不同编辑器里宽度飘忽 —— 每个编辑器对制表位的宽度设置都不一样。其余分隔符下会按显示宽度补齐(汉字占两格),并且数字右对齐、文本左对齐,这样一列数字的量级一眼就能比出来。
- 数据会被上传吗?
- 不会。转换全在浏览器内存里完成,页面不发送任何请求,断网也能用。
相关工具
表格转换
文本把 CSV、TSV 或 Markdown 表格互转:Markdown 表格、ASCII 边框表、HTML、JSON、CSV。按 RFC 4180 处理引号,列宽按显示宽度对齐。
JSON 格式化
格式化在线 JSON 格式化与校验工具:树形折叠浏览、搜索键值、逐节点改值与删除、语法错误定位到具体行列,输入框带行号与高亮。全部在浏览器本地完成。
JSON 转代码
格式化把 JSON 样本转成 TypeScript interface、Go struct、Java class 或 Rust struct:不齐的键标成可选、类型冲突退化为联合类型。全程在浏览器本地生成。
正则测试
文本浏览器里调试正则:匹配实时高亮、捕获组、替换预览,并挡住灾难性回溯;调好可生成 JavaScript、Python、Java、Go、PHP 代码,反向引用按语言转换。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。