6

一、QuickType 工具功能简介

QuickType 是一款可以根据 json 文本生成指定语言(如 Type Script,C++,,Java,C#,Go 等)类型声明代码的工具。

例如我们在写接口调用处理收到响应数据的逻辑时一般分为如下两步: 1.根据接口返回的 JSON 格式写一个对应的类型 2.写 JSON 格式验证与解析逻辑来根据收到的数据生成对应的类对象

使用 QuickType 工具就可以根据 JSON 文本帮助我们自动生成以上两部分的代码。
以如下 JSON 为例:
json代码

使用 QuickType 生成 TypeScript 语言的接口声明代码如下:

生成TypeScript

二、QuickType 工具的使用

可以通过桌面应用、web 页、 IDE 插件、命令行 4 种方式使用 QuickType 工具。
其中 web 页(https://app.quicktype.io/ 可能被墙)和桌面应用使用方式基本一致这里不做介绍。

1.桌面应用方式(仅 mac OS)

打开 App Store 搜索 “Paste JSON as Code”下载安装即可
图片.png

软件使用很简单,软件时时生成目标代码,按如下步骤操作:

  • 在左侧选择原始数据的类型
  • 输入原始数据
  • 修改要生成的类名,
  • 在右侧选择要生成的目标语言,并进行配置(每种语言的可配置项不同)

图片.png

1.以 IDE 扩展方式使用

QuickType 提供了 Xcode,VSCode, Visual Studio 三种开发工具的扩展。下载地址如下:

下面以 VSCode 扩展的安装与使用为例

2.1 安装 vscode 扩展 Paste JSON as Code

  • 打开 Visual Studio Code 软件进入扩展商店
  • 搜索 Paste JSON as Code
  • 点击 install 进行安装

图片.png

2.2 在 VSCode 中使用 Paste JSON as Code 扩展

vscode 中 Paste JSON 有两种使用方式。

方式 1: 将剪切板中的 JSON 内容直接生成目标代码插入到当前编辑文件中,流程如下:
  • 选择并拷贝【control(win)/command(mac)+c】要生成目标代码的 JSON 文本
  • 打开要插入类型声明代码的文件,用鼠标点击要插入代码的位置(扩展会自动根据文件扩展名决定生成目标代码的语言)
  • 打开 VSCode 命令框【按 control(win)/command(mac) + shift +p】输入 “>Paste JSON as Types”后回车
  • 根据提示输入要生成的类型名称,回车后会在当前文档插入声明代码。
    如下图:

图片.png

方式 2:编辑 JSON 文件时时生成类型声明文件,流程如下:
  • 在 vscode 打开 json 文本文件
  • 打开 VSCode 命令框【按 control(win)/command(mac) + shift +p】输入 “>Open quicktype for JSON”
  • 编辑区域会显示一个名为 QuickType.xx 的目标语言文件,文件内容会随着你对 json 文件的编辑跟新。(默认生成代码语言可能不是你想要的)
  • 设置目标语言类型:打开 VSCode 命令框【按 control(win)/command(mac) + shift +p】输入 “>Set quicktype target language”
  • 在打开的下拉列表中选择生成代码语言完成语言切换

图片.png

3.以命令行方式使用

安装流程:

  • 安装 node 环境
  • 全局安装 quicktype npm 包
    命令行下输入: npm install –g quicktype

quicktype 命令

# 查看帮助
quicktype

# json字符串生成C# 声明
echo '{ "name": "David" }' | quicktype -l csharp

# json字符串生成Go类声名文件 ints.go
echo '[1, 2, 3]' | quicktype -o ints.go

# 从json文件生成swift类文件
quicktype person.json -o Person.swift

# 可选参数
quicktype \
  --src person.json \
  --src-lang json \
  --lang swift \
  --top-level Person \
  --out Person.swift

# 从返回 JSON 的接口生成 java类文件
quicktype https://api.somewhere.com/data -o Data.java

LeapFE
1.1k 声望2.3k 粉丝

字节内推,发送简历至 zhengqingxin.dancing@bytedance.com