Alt+Enter添加JSON tag需将光标精确置于结构体字段名上(如Name),不可跨行或多选;默认转snake_case,可在Settings→Go→Code Generation→Struct tags中取消勾选对应选项,或在Editor→Code Completion→Custom Tags中修改json默认值;批量操作需光标置于结构体花括号内触发。

光标放哪才能触发 Alt+Enter 添加 tag
必须把光标精确停在结构体字段名上(比如 Name 在 Name string 这一行),不能放在类型、空格或注释里。放在字段名任意位置都行,但不能跨行或选中多字符——选中文字会触发其他意图(如重命名),而不是 tag 操作。
添加 json tag 时字段名自动转 snake_case 怎么关
GoLand 默认把 Name 转成 name(小写),但如果你项目要求驼峰(userName),得提前改配置,否则 Alt+Enter → Add json tag 生成的就是错的。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- Settings → Go → Code Generation → Struct tags → 取消勾选
Use snake_case for JSON, XML, and YAML tags - 或者更细粒度控制:Settings → Editor → General → Code Completion → Custom Tags → 找到
json→ 点铅笔图标 → 把Default value改成userName - 改完后新字段才生效;已有字段需删掉旧 tag 再按
Alt+Enter重新加
批量加 tag 或统一改风格用哪个快捷操作
对整个结构体一次性处理,别一个个字段按 Alt+Enter。光标放在结构体花括号内任意位置(哪怕空行),再按 Alt+Enter,就能看到 “Add json tags to all fields” 或 “Change field name style in tags”。
- 选后者可批量切换风格:支持
fieldName(驼峰)、field_name(下划线)、field-name(短横)、FieldName(Pascal) - 切换后所有字段 tag 会重写,但不会动已有
omitempty或自定义值(如json:"user_id,omitempty"中的omitempty保留) - 如果结构体字段很多且含嵌套,建议先备份或开 Git 暂存,避免误覆盖
Alt+Enter 没反应?常见卡点在哪
不是快捷键坏了,大概率是 IDE 没识别出当前上下文为 Go 结构体字段。
- 检查文件是否被识别为
.go:右下角状态栏看语言标识,不是就右键 →Override File Type→ 选Go - 确认包已正确加载:如果结构体定义在未
import的包里,或模块未初始化(go.mod缺失/损坏),Alt+Enter的 tag 意图会直接不出现 - 结构体本身要导出:字段名首字母大写,且结构体名也要大写;
type user struct{ Name string }(小写user)无法触发 tag 补全 - 刚新建的文件没保存过,有时索引未建立,
Ctrl+Shift+O(Rebuild project index)可强制刷新
File → Reload project from disk。

















