news 2026/5/5 21:23:27

JSON 转 Proto 工具(支持嵌套与注释解析)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JSON 转 Proto 工具(支持嵌套与注释解析)

JSON 转 Proto 工具(支持嵌套与注释解析)

平时在做 gRPC 或者微服务的时候,经常需要写.proto文件。

但现实情况是,大多数时候我们手里已经有一份 JSON 数据结构了,再去手写 proto,其实有点重复劳动。

最近整理了一个 JSON 转 Proto 的工具,主要就是把这一步自动化,同时补了一些实际开发里比较有用的能力,比如嵌套解析、注释保留这些。


功能点

1. 嵌套 JSON 自动解析

支持递归解析 JSON 结构。

如果 JSON 里有对象嵌套、数组嵌套,会自动拆分成多个message,并建立引用关系,不需要手动去拆结构。


2. 数组自动识别为 repeated

像这种结构:

{"list":[{"name":"test"}]}

会自动生成:

repeated Item list = 1;

基本符合 proto 的使用习惯。


3. 注释解析(比较实用)

如果 JSON 里带有注释:

{"name":"test",// 姓名"age":10// 年龄}

生成的 proto 会保留这些注释:

message GenerateObj { string name = 1; // 姓名 int32 age = 2; // 年龄 }

这一点在接口文档或者多人协作时还是挺有用的。


4. JSON 格式校验

在转换之前会先做一层 JSON 校验。

如果有语法问题,会提示具体错误位置,避免生成错误的 proto。


示例

输入:

{"name":"test",// 姓名"age":10,// 年龄"addr":"四川成都",// 地址"cls_info":[{"name":"篮球班",// 班名"teacher":"张老师"// 老师},{"name":"美术班","teacher":"李老师"}]}

输出:

message ClsInfo { string name = 1; // 班名 string teacher = 2; // 老师 } message GenerateObj { string name = 1; // 姓名 int32 age = 2; // 年龄 string addr = 3; // 地址 repeated ClsInfo cls_info = 4; // 班级 }

使用场景

  • 从已有 JSON 快速生成 proto
  • gRPC 接口定义
  • 数据结构建模
  • 接口文档辅助生成

地址

https://gotool.top


一点说明

这个工具主要解决的是一件小事:
把「JSON → Proto」这一步做得更省事一点。

顺带把几个常见问题一起处理了:

  • 嵌套结构自动拆
  • 数组自动转 repeated
  • 注释尽量保留

如果你平时会写 proto,这一步其实能省不少时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 21:21:28

风力发电机输出功率预测建模:算法、影响因素与优化策略深度解析

风力发电作为一种清洁能源,在能源结构转型中扮演着越来越重要的角色。然而,风力发电机的输出功率具有间歇性和波动性,这给电网的稳定运行带来了挑战。准确的风力发电机输出功率预测模型对于电网调度、电力市场交易以及风电场的优化运行至关重…

作者头像 李华
网站建设 2026/5/5 21:12:01

使用malloc,calloc读取数组并安全释放,用realloc对数组进行扩容

1.我们知道在函数对数组进行初始化数组的初始化结果会随着函数运行的结束而消失&#xff0c;所以可以用malloc申请堆内存的方式对数组进行初始化#include<stdio.h> #include<stdlib.h> //设置一个能获取数组的函数 int* getArray() {int* res (int*)malloc(100 * …

作者头像 李华
网站建设 2026/5/5 21:06:38

低查重AI写教材的方法,实测8款工具,快速搞定教材编制难题!

在编写教材时&#xff0c;如何才能有效应对多样化的需求呢&#xff1f; 不同年级的学生在认知水平上存在显著差异&#xff0c;过于艰深或简单的内容都不理想。课堂教学与自主学习之间的需求各异&#xff0c;教材的呈现方式需要灵活调整。不同地区的教育环境也大相径庭&#xf…

作者头像 李华
网站建设 2026/5/5 21:05:45

网盘直链下载助手:无需登录获取真实下载地址的完整指南

网盘直链下载助手&#xff1a;无需登录获取真实下载地址的完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…

作者头像 李华
网站建设 2026/5/5 21:04:49

量子变分激活函数在KAN网络中的应用与优化

1. 量子计算与神经网络的跨界融合在深度学习领域&#xff0c;激活函数一直扮演着神经元的"开关"角色。最近实验室里有个有趣的发现&#xff1a;当我们把量子计算中的变分原理引入传统激活函数设计时&#xff0c;那些原本在Kolmogorov-Arnold网络&#xff08;KAN&…

作者头像 李华