VSCode插件 - Json生成不同语言的数据结构
简介在编码的过程中有没有觉得一堆json要转换成自己想要的数据结构要一个字段一个字段去些,感觉非常难受,又费时间又不安逸。对于一个程序员最喜欢偷懒,在VSCode有一款插件解决了这个问题:Paste JSON as Code。
在编码的过程中有没有觉得一堆json要转换成自己想要的数据结构要一个字段一个字段去些,感觉非常难受,又费时间又不安逸。对于一个程序员最喜欢偷懒,在VSCode有一款插件解决了这个问题:Paste JSON as Code。
支持很多语言:TypeScript, Python, Go, Ruby, C#, Java, Swift, Rust, Kotlin, C++, Flow, Objective-C, JavaScript, Elm, and JSON Schema
安装插件
Ctrl+Shift+X:搜索Paste JSON as Code,安装
JSON示例
{
"status_code":200,
"message":"成功",
"data":{
"all":[
{
"category_id":"",
"category_name":"全部类别",
"category_count":""
}
{
"category_id":"学习规划",
"category_name":"学习规划",
"category_count":"4"
}]
}
}
以上是一个非常通用的接口返回数据格式
生成数据结构
- 新建一个文件,如果是go语言就是xxx.go、如果是java就是xxx.java等,包含很多语言
- 复制上面的json
- Ctrl+Shift+P(必须是在第一步新建的文件中执行)
- 选择Paste Json As Code 回车
- 粘贴上面复制的json数据,回车
- 生成内容
生成go数据结构
// Generated by https://quicktype.io
type StatusCode200Message成功DataAllCategoryIDCategoryName全部类别CategoryCountCategoryID语文CategoryName语文CategoryCount48CategoryID阅读CategoryName阅读CategoryCount7CategoryID学习规划CategoryName学习规划CategoryCount4 struct {
StatusCode int64 `json:"status_code"`
Message string `json:"message"`
Data Data `json:"data"`
}
type Data struct {
All []All `json:"all"`
}
type All struct {
CategoryID string `json:"category_id"`
CategoryName string `json:"category_name"`
CategoryCount string `json:"category_count"`
}
生成java的数据结构
// StatusCode200MessageDataAllCategoryIDCategoryNameCategoryCountCategoryIDCategoryNameCategoryCount4.java
// Generated by https://quicktype.io
package io.quicktype;
import java.util.Map;
public class StatusCode200MessageDataAllCategoryIDCategoryNameCategoryCountCategoryIDCategoryNameCategoryCount4 {
private long statusCode;
private String message;
private Data data;
public long getStatusCode() { return statusCode; }
public void setStatusCode(long value) { this.statusCode = value; }
public String getMessage() { return message; }
public void setMessage(String value) { this.message = value; }
public Data getData() { return data; }
public void setData(Data value) { this.data = value; }
}
// Data.java
package io.quicktype;
import java.util.Map;
public class Data {
private All[] all;
public All[] getAll() { return all; }
public void setAll(All[] value) { this.all = value; }
}
// All.java
package io.quicktype;
import java.util.Map;
public class All {
private String categoryID;
private String categoryName;
private String categoryCount;
public String getCategoryID() { return categoryID; }
public void setCategoryID(String value) { this.categoryID = value; }
public String getCategoryName() { return categoryName; }
public void setCategoryName(String value) { this.categoryName = value; }
public String getCategoryCount() { return categoryCount; }
public void setCategoryCount(String value) { this.categoryCount = value; }
}
是不是感觉非常方便,为自己开发减轻了很多工作量。
前一篇博客中已经说过Golang对Gzip的处理,其实这是我的服务器端的处理,那么当我们服务器返回Gzip压缩的字符串后,客户端如何进行解压呢?本文主要记录下JavaScript对Gzip进行压缩和解压处理。
在PHP中,对二维数组排序还是非常简单的,但是在Golang中对二位数据排序显的就稍显麻烦,但是我们还是可以通过结构体来进行排序,本文主要记录Golang如何通过结构体的多个字段来进行排序。
按钮在我们开发过程中是少不了的,本节将介绍Flutter常用的一些按钮组件,例如:TextButton、OutlinedButton、ElevatedButton
通过sudo命令,可以让普通用户在执行指定命令或程序上,拥有超级管理员的权限。并有针对性将不同的命令授予指定的普通用户,同时普通用户不需要知道root的密码就可以得到授权,授权的方式可以通过visudo配置管理。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题