* 戳上方蓝字“开源先锋”关注我
推荐阅读:
《2.6K star!速度达30M/S,这款开源下载神器绝了!》
大家好,我是开源君
话说在编码江湖里,我们大概率每天都会和JSON这样的数据格式打交道,每次面对复杂的数据结构或是需要与API打交道时,是不是总感觉手动编写那些冗长的代码既枯燥又容易出错。
今天开源君要分享一款超酷的开源项目 - quicktype
,可以帮助解放我们的双手,让我们用更聪明的方式处理数据。
项目简介
QuickType
是一个能够从JSON、JSON Schema、TypeScript甚至是GraphQL查询中生成强类型的模型和序列化器。支持多种编程语言,包括 JavaScript、Python、Java、TypeScript、Swift、Go、Rust 等几十种编程语言。
想象一下,你只需将 JSON 粘贴到 quicktype,它就能迅速生成对应的代码。就像魔法一样!再也不需要手动编写冗长的类型定义了,是不是感觉瞬间提升了编程效率?
目前在Github上收获了12.2K star!
性能特色
多语言支持:JavaScript、TypeScript、Python、Java、C#、Swift……你能想到的主流编程语言,它几乎都能覆盖,满足不同项目的需求。
自动推导类型:quicktype 可以智能推导出数据的类型,这样就算你对数据的结构一无所知,也能轻松获得准确的类型定义。
友好的 UI 界面:quicktype 提供了一个简单易用的网页界面,用户只需简单粘贴 JSON 数据,即可生成对应的代码,甚至可以在线下载生成的代码文件。
集成开发环境(IDE)插件:quicktype 还提供了各种插件,帮助你在不同的开发环境中使用,比如 VS Code 和 IntelliJ。你只需在 IDE 中运行 quicktype,就可以快速生成所需代码。
灵活性:自定义命名策略?没问题!QuickType允许你按照团队规范或个人喜好来设置,怎么顺心怎么来。
易于集成:提供了命令行接口(CLI),无论是自动化工作流还是手动集成,都是轻松加愉快。
快速安装使用
使用 quicktype 的方法很多,官方提供了在线web、 IDE 插件、命令行等方式使用。
1、在线web:直接访问QuickType官网,通过在线工具生成代码。
2、命令行工具:安装QuickType的CLI工具,命令如下:
npm install -g quicktype
3、IDE 插件:支持 Xcode、VSCode 和 Visual Studio 插件
项目展示
这里开源君使用 quicktype 在线web网站来展示一下。
网址:https://app.quicktype.io/
打开后如下图
假设我们有一个包含多个用户信息的 JSON 数据,把数据粘贴到网页的左边。
{
"description": {
"title": "Contiguous U.S., Average Temperature",
"units": "Degrees Fahrenheit",
"base_period": "1901-2000"
},
"data": {
"189512": {
"value": "50.34",
"anomaly": "-1.68"
},
"189612": {
"value": "51.99",
"anomaly": "-0.03"
},
"189712": {
"value": "51.56",
"anomaly": "-0.46"
}
}
}
选择想要生成的编程语言,比如 TypeScript,勾选 interface。
很快我们就能获得这个Json的 interface了,非常速度。完全不需要花时间去手动定义每一个属性,太省心了。
export interface Temperatures {
description: Description;
data: { [key: string]: Datum };
}
export interface Datum {
value: string;
anomaly: string;
}
export interface Description {
title: string;
units: string;
base_period: string;
}
看,数据结构就变得清晰多了!而且不需要花时间去手动定义每一个属性,是不是很省心?
quicktype
绝对是一个令人惊叹的开源工具,极大提升了程序员们的工作效率。它极大地简化了数据与代码之间的转换过程,将原本繁琐的手动编码过程自动化,让我们有更多时间专注于创新和解决问题。如果还没试过 quicktype,赶快去试试吧!
更多细节功能,感兴趣的可以到项目地址查看:
项目地址:
https://github.com/glideapps/quicktype