作者:互联网 时间: 2026-09-01 18:41:55
Atom中可通过atom-beautify格式化JSON,再用自定义命令一键包裹为amis响应格式{"status":0,"msg":"","data":{}};支持正则批量重命名字段、snippets快速插入模板。
在 Atom 编辑器中完成代码生成后,需对 API 响应返回格式进行二次修改以匹配前端框架(如 amis、Axios 适配器)或后端契约要求,例如将原始 JSON 补全 status、msg、data 三层结构,或统一字段名、过滤敏感字段、转换嵌套层级。
适用于已生成纯数据对象(如 {"user_id":123,"name":"李四"}),需一键补全为 amis 兼容格式 {"status":0,"msg":"","data":{"user_id":123,"name":"李四"}}。
第一步:安装 atom-beautify 插件并确保已启用;
第二步:打开命令面板(Ctrl+Shift+P → 输入 “Beautify Editor” → 回车),先格式化原始 JSON,避免解析失败;
第三步:按 Ctrl+Shift+P → 输入 “Open Your Keymap” → 回车,编辑 keymap.cson,在末尾添加如下绑定:
'atom-text-editor[data-grammar="source json"]':'ctrl-alt-r': 'custom:wrap-as-amis-response'
第四步:在 init.coffee 中定义该命令(Ctrl+Shift+P → “Open Your Init Script”):
atom.commands.add 'atom-text-editor', 'custom:wrap-as-amis-response', ->editor = atom.workspace.getActiveTextEditor()
text = editor.getSelectedText() or editor.getText()
try
obj = JSON.parse(text)
wrapped = { status: 0, msg: '', data: obj }
editor.setText(JSON.stringify(wrapped, null, 2))
catch e
atom.notifications.addError('JSON 解析失败,请检查是否为合法对象')
这一步必须用 try/catch 包裹,否则非法 JSON 会直接崩溃 Atom;【未选中文本时自动作用于全文】 是该脚本默认行为,勿手动全选再触发。
当后端返回字段命名不一致(如 errorCode / errorMessage / result),而你无法修改服务端逻辑,只能在 Atom 中本地批量修正为标准 status / msg / data 格式。
方法一:替换根级字段名
打开 Find → Find in Buffer(Ctrl+F),勾选 “Regex” 和 “Case Sensitive”;
查找:"errorCode"s*:s*(d+),替换为:"status": $1;
查找:"errorMessage"s*:s*("[^"]*"),替换为:"msg": $1;
查找:"result"s*:s*({[sS]*?}|[[sS]*?]),替换为:"data": $1。
方法二:补全缺失字段(仅限对象顶层)
查找:^{,替换为:{"status": 0, "msg": "", "data": ;
查找:}$,替换为:};
注意:此操作会破坏已有 status 字段——【务必先备份文件或使用 Git 暂存】。
当你频繁生成不同业务场景的响应结构(如分页列表、单条详情、空数据提示),可预设 snippets 直接调用,避免重复手敲。
打开 Snippets → Open Your Snippets(Ctrl+Shift+P → “Application: Open Your Snippets”);
在 snippets.cson 中添加:
'.source.json':'amis success response':
'prefix': 'amis-ok'
'body': '{n "status": 0,n "msg": "",n "data": $1n}'
保存后,在 JSON 文件中输入 amis-ok + Tab,即可展开模板,光标自动停在 data 位置;
再添加一个错误模板:
'amis error response':'prefix': 'amis-err'
'body': '{n "status": $1,n "msg": "$2",n "data": {}n}'
这个模板支持双参数占位,Tab 切换顺序是先填状态码、再填错误信息,比手写快 3 秒以上。