使用QuickType工具從json自動生成類型聲明代碼

1、QuickType 工具功能簡介

QuickType 是一款能夠根據 json 文本生成指定語言(如 Type Script,C++,,Java,C#,Go 等)類型聲明代碼的工具。java

例如咱們在寫接口調用處理收到響應數據的邏輯時通常分爲以下兩步: 1.根據接口返回的 JSON 格式寫一個對應的類型 2.寫 JSON 格式驗證與解析邏輯來根據收到的數據生成對應的類對象node

使用 QuickType 工具就能夠根據 JSON 文本幫助咱們自動生成以上兩部分的代碼。
以以下 JSON 爲例:
json代碼web

使用 QuickType 生成 TypeScript 語言的接口聲明代碼以下:npm

生成TypeScript

2、QuickType 工具的使用

能夠經過桌面應用、web 頁、 IDE 插件、命令行 4 種方式使用 QuickType 工具。
其中 web 頁(https://app.quicktype.io/ 可能被牆)和桌面應用使用方式基本一致這裏不作介紹。json

1.桌面應用方式(僅 mac OS)

打開 App Store 搜索 「Paste JSON as Code」下載安裝便可
圖片.pngswift

軟件使用很簡單,軟件時時生成目標代碼,按以下步驟操做:api

  • 在左側選擇原始數據的類型
  • 輸入原始數據
  • 修改要生成的類名,
  • 在右側選擇要生成的目標語言,並進行配置(每種語言的可配置項不一樣)

圖片.png

1.以 IDE 擴展方式使用

QuickType 提供了 Xcode,VSCode, Visual Studio 三種開發工具的擴展。下載地址以下:app

下面以 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
相關文章
相關標籤/搜索