Paste JSON as Code 功能需安装 quicktype 扩展,右键触发,支持 TypeScript/Go 等语言;字段名默认转 camelCase,可配置为 original;Go 结构体需手动大写首字母并添加 json tag;生成类型依赖样本,建议合并多例 JSON 提高准确性。

VSCode Paste JSON as Code 功能在哪找
这个功能不是默认开启的,得先装对扩展——核心是 Paste JSON as Code(作者:quicktype),不是 VSCode 自带功能。很多人搜半天找不到入口,是因为没装它,或者装了但没激活上下文菜单。
安装后,**必须用右键菜单触发**:复制一段合法 JSON,打开一个 .ts 或 .go 文件,光标放在合适位置,右键 → Paste JSON as Code → 选语言(TypeScript/Go 等)→ 自动生成类型定义。
- 不支持 Ctrl+V 直接触发,必须右键
- JSON 必须是严格格式(不能有 trailing comma、单引号、注释)
- 如果右键没出现该选项,检查是否在支持的语言文件中(如 .ts/.go/.py),且编辑器未处于只读状态
生成 TypeScript 类型时字段名被转成 camelCase 怎么办
quicktype 默认把 JSON 中的 snake_case 字段名转成 camelCase,比如 "user_name" 变成 userName。这不是 bug,是它的默认命名策略,但容易让开发者误以为类型和原始数据不匹配。
解决方法是手动指定命名规则:
- 右键粘贴前,先按
Ctrl+Shift+P打开命令面板,输入Quicktype: Configure Paste Behavior - 在弹出配置中把
style改为original(保留原始字段名) - 也可设为
kebab-case或PascalCase,取决于团队约定 - 该配置会存到用户设置里,影响所有后续粘贴
Go 结构体生成后无法直接用:json tag 缺失或大小写错
VSCode 插件生成的 Go 结构体默认不加 json: tag,而且字段首字母小写 → 导致 JSON 解析失败(Go 要求导出字段首字母大写,且需显式 tag 映射)。
别指望一键生成即开即用,必须手动补两样:
- 每个字段首字母改为大写(
user_name→UserName) - 加上
jsontag:UserName string `json:"user_name"` - 如果 JSON 有嵌套对象,插件可能生成
interface{},需手动替换成具体 struct 类型 - 注意 Go 的空值语义:插件默认用指针类型(
*string)表示可空字段,若业务要求零值安全,得改成值类型 +omitempty
为什么有时生成的类型和实际 API 返回不一致
因为 Paste JSON as Code 是基于单次粘贴的 JSON 样本推断结构,而真实 API 的字段可能是动态的、可选的、甚至类型会变(比如 "id": 123 有时返回 "id": "123")。
这种“样本偏差”导致生成的类型太理想化:
- 数组里只有一条数据?插件可能把字段判为非数组(应多粘贴几组不同结构的 JSON)
- 字段偶尔为
null?插件默认忽略,需手动加| null(TS)或用指针(Go) - 时间字段是字符串还是毫秒数?插件不会猜,得自己加
Date或time.Time注解 - 建议把 API 的多个响应示例合并成一个含全字段的 JSON 再粘贴,比靠一次请求更可靠
最麻烦的其实是嵌套层级深、字段命名混乱、或存在循环引用的 JSON —— 这时候自动生成只是起点,还得人工核对字段语义和边界条件。











