VSCode插件 - Json生成不同语言的数据结构

xiaohai 2021-05-08 22:20:04 2714人围观 标签: VSCode 
简介在编码的过程中有没有觉得一堆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; }
}

是不是感觉非常方便,为自己开发减轻了很多工作量。