op 在一家小公司上班,由于系统 Bug 较多,经常需要处理数据库中奇怪的脏数据,便以此为契机开发了这款字符串小工具,同时也增加了一些实用功能。如果你经常需要读取 MyBatis 日志、使用 DataGrip 处理数据,或者浏览 JSON ,大概率会需要这款软件。
string_utils_v2 是一个面向日常开发场景的 Electron 托盘工具,核心能力是对剪贴板文本进行快速识别与转换。应用启动后默认常驻系统托盘,使用快捷键 Ctrl+Alt+D 即可唤醒。
窗口弹出后会自动读取当前剪贴板内容,并根据内置处理器的匹配分数自动选中最合适的功能。按下 Enter 或点击按钮即可执行转换,结果会自动写回编辑区并同步复制到剪贴板。
这个项目特别适合下面这些高频场景:
DataGrip 导出的 UPDATE / INSERT 语句Ctrl+Alt+DEnter 或点击界面按钮补充说明:
Esc 或切走焦点时窗口会自动隐藏| 功能 | 说明 | 预览 |
|---|---|---|
| SQL 数据提取 | 针对 DataGrip 等工具导出的 UPDATE / INSERT 语句批量提取目标值 |
![]() |
| 排序并去重 | 对多行进行排序及去重 | ![]() |
| 命名规则转换 | 在 camelCase、snake_case、PascalCase 等风格之间切换 |
![]() |
| MyBatis 注解提取 | 从 @Select / @Update / @Insert / @Delete 注解中还原 SQL |
![]() |
| MyBatis 日志解析 | 从 MyBatis 日志中拼接出可执行 SQL | ![]() |
| JSON 预览 | 同时尝试打开本地 jsonhero 和 jsoncrack 预览 JSON |
![]() |
| JSON 字段抽取 | 适合对象数组场景,执行时优先提取 id,否则提取每项的第一个字段;自动识别更偏向单字段对象数组 |
![]() |
| ID 拼接 | 在换行、逗号和 "a","b" 形式之间快速切换 |
![]() |
| JSON Diff | 将包含两个对象的 JSON 数组交给 vscode 做可视化对比 |
![]() |
项目在启动时会尝试拉起两个本地 HTTP 服务,无需依赖公网:
说明:
jsonhero,同时也会打开 jsoncrack[{...}, {...}]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.sunp.eu.org/t/1043371 。虽然过去了 700 天,但我仍然不懂 Remix ,只是借助高速发展的 AI ,把一个大任务拆分成几个子任务,分段完成了这一功能。
当初开发时我也考虑过其他技术栈,比如 Flutter 、微软的 WPF 等,但最终还是不得不承认 Electron 开发效率是真的高
就这些了,欢迎使用。
1
stinkytofux 1 天前
你这些规则都是硬编码的, 可能适合你, 但是不适合别人. 这种需求交给 AI 太简单了, 设置好提示词, 吞吐又快又灵活.
|
2
ltaoo1o 1 天前
后续需要的功能越来越多,硬编码能力满足不了,改成插件实现,用户可以自己安装需要的插件。好,恭喜你发明了 utools 🤣
|
3
iorilu 1 天前
这个确实, 如果能自定义一些函数, 使用 js, 应该可以把, 用途就多些
|
4
dreamk 1 天前
`应用启动后默认常驻系统托盘`
换 tauri 吧,electron 这么大的安装包,还后台常驻,会劝退很多人,小工具就更应该精简些了 |
5
zerovoid 21 小时 9 分钟前
感觉小工具的时代过去了,
现在 AI 可以直接根据你的需求,写出对应的处理脚本, AI 出的小脚本我还会存着,下次有类似需要,直接叫 AI 调用。 |
6
changdy OP @stinkytofux
@zerovoid 两位 ,我从来不否认 ai 的能力.但是一些随手用的工具 用固定的硬编码难道不就是最快最便捷的吗? 对于 javaer crud 解析 mybatis 日志之类的 是非常日常的事情了,并且我也开头说了并不一定适合所有人. @ltaoo1o utools 确实有些功能能替代. 但是步骤还是会多一些. 略显麻烦了. 并且处理问题的核心思想还是有些差异的. @iorilu 支持用户自定义 js 代码的. @dreamk 当初有考虑过换.但其实两者都查不太大. 毕竟后台都是需要运行一个浏览器核心.区别只是一个安装包自带.一个没自带. 不过可能将来换成 flutter .当初做的时候 flutter desktop 端资料太少.现在有 ai 或许会方便一些. |
7
fbichijing 5 小时 15 分钟前
给不会编程的人,这种完特定功能的程序不一定刚好能适合这些人的使用。而会编程的人,大概并不十分需要这种程序。必要时自己撸一个就是了......
|
8
iorilu 5 小时 12 分钟前
|