推荐下自己开发的一款字符串处理小工具
开发背景
op 在一家小公司上班,由于系统 Bug 较多,经常需要处理数据库中奇怪的脏数据,便以此为契机开发了这款字符串小工具,同时也增加了一些实用功能。如果你经常需要读取 MyBatis 日志、使用 DataGrip 处理数据,或者浏览 JSON ,大概率会需要这款软件。
功能介绍
项目简介

stringutilsv2 是一个面向日常开发场景的 Electron 托盘工具,核心能力是对剪贴板文本进行快速识别与转换。应用启动后默认常驻系统托盘,使用快捷键 Ctrl+Alt+D 即可唤醒。
窗口弹出后会自动读取当前剪贴板内容,并根据内置处理器的匹配分数自动选中最合适的功能。按下 Enter 或点击按钮即可执行转换,结果会自动写回编辑区并同步复制到剪贴板。
这个项目特别适合下面这些高频场景:
SQL 清洗:批量处理
DataGrip导出的UPDATE / INSERT语句MyBatis 还原:从注解或日志中提取可执行 SQL
JSON 辅助处理:字段抽取、结构预览、对象差异对比
文本整理:排序去重、ID 拼接、命名风格转换
私有工具扩展:通过用户脚本把团队内部的小工具挂进侧边栏
使用方式
复制文本:先把待处理内容放到剪贴板
唤醒窗口:按默认快捷键
Ctrl+Alt+D确认功能:程序会自动选中一个处理器,你也可以点击左侧图标手动切换
执行处理:按
Enter或点击界面按钮拿到结果:转换后的文本会自动复制回剪贴板
补充说明:
窗口行为:按
Esc或切走焦点时窗口会自动隐藏托盘菜单:可控制功能显隐、设置开机启动、修改快捷键、打开用户脚本目录
无联网依赖:运行阶段的 JSON 预览服务均在本地启动
功能一览
功能 | 说明 | 预览 |
|---|---|---|
SQL 数据提取 | 针对 | |
排序并去重 | 对多行进行排序及去重 | Sort_Distinct |
命名规则转换 | 在 | Naming_Convention.gif |
MyBatis 注解提取 | 从 | Mybatis_Annotation.gif |
MyBatis 日志解析 | 从 MyBatis 日志中拼接出可执行 SQL | Mybatis_Log.gif |
JSON 预览 | 同时尝试打开本地 | JSON_View |
JSON 字段抽取 | 适合对象数组场景,执行时优先提取 | JSON_Extract |
ID 拼接 | 在换行、逗号和 | ID_Join.gif |
JSON Diff | 将包含两个对象的 JSON 数组交给 | json-diff.gif |
JSON 预览与对比说明
项目在启动时会尝试拉起两个本地 HTTP 服务,无需依赖公网:
说明:
JSON 预览:会优先尝试打开
jsonhero,同时也会打开jsoncrackJSON Diff:输入必须是一个包含两个对象的 JSON 数组,例如
[{...}, {...}]VS Code 依赖:
JSON Diff建议本机已安装VS Code,并可使用code命令
开发的那些事
最早的时候,这个项目是为了解决 ID 转换 的需求——客服经常会给我一批以换行符分隔的订单编号,我需要批量加上引号、再用逗号分隔,然后拼成 IN("abc","甲乙丙","123") 的格式进行 SQL 查询。因为手动处理比较麻烦,加上当时对各种效率软件比较着迷,就尝试自己动手做一个。
项目起步之后,后续开发也就步入了正轨:MyBatis 日志提取 SQL 、MyBatis 注解提取 SQL 、排序去重等功能都按部就班地实现了。但用了几年后觉得界面实在太丑,于是重写了 UI ,添加了一些动画,做成了现在的 V2 版本。V2 还增加了 JSON 预览以及 JSON 比较的功能,其中 JSON 预览使用了 json-hero 和 json-crack 来实现,这两个都是我认为非常优秀的 JSON 工具。
关于 json-hero 还有一个有趣的小插曲:它是一款 Remix 全栈项目。前段时间我想把它集成到 Electron 中,在网上搜索解决方案时,竟然搜到了自己两年前的提问: https://www.v2ex.com/t/1043371 。虽然过去了 700 天,但我仍然不懂 Remix ,只是借助高速发展的 AI ,把一个大任务拆分成几个子任务,分段完成了这一功能。
当初开发时我也考虑过其他技术栈,比如 Flutter 、微软的 WPF 等,但最终还是不得不承认 Electron 开发效率是真的高
就这些了,欢迎使用。