做了一个 java2json 的小工具

332 天前
 barantt01

天天写设计文档

还要求接口文档都写好,大接口的入参出参写的我头大。

一个实体类定义出来之后,还要再敲一遍对应的 json 示例。然后就有了做一个小工具的想法。

功能很简单,就是输入 java 实体类,然后生成对于的 json 示例。

佬们看看,给点意见~🫶

java2json

2464 次点击
所在节点    程序员
25 条回复
NoKey
331 天前
idea 里面有很多插件干这个啊,vscode 有类似的不?不用贴到网页上搞吧
barantt01
330 天前
@NoKey 确实是这样。我搜的时候可能没收对关键词,导致我没找到,然后就自己动手搞了一个
wuhunyu
330 天前
看样子是纯前端的工具,不过就像是网友们说的,idea 中已经有满足你需求的插件了,甚至还少一次复制类的动作。不过还是提几个可优化的点
1. 给出的 json 输出中,未适配的数据类型不能给出正确的值。基本的 Long ,Integer 得做一下适配吧,我不信作者的类中没用到的基本数据类型的包装类
2. 静态字段也输出在 json 中。对象实例在序列化后不会包含静态属性。其他的比较少见的 transient ,以及 jackson 的 @JsonIgnore 都没有做忽略
3. 无法读取类的上下文依赖情况。试想一下这种情况,一个用户类中,有拥有的角色类属性,所属部门类属性等等,在这个工具中,如果要被正确识别角色属性和部门属性,要把用户类,角色类和部门类都复制出来,才能生成正确的 json 输出。这个场景应该是比较常见的。如果是在 idea 的插件中,可以读取到项目的上下文环境。但在作者的这个工具中,需要使用者把这些类都复制出来才行。这是一个硬伤
barantt01
330 天前
@wuhunyu 非常感谢你认真的回复!
1: 这个确实是遗漏了,初心漏了包装类型
2: 这个可以做支持
3: 这种情况暂时没法解决。如你所说,这是一个前端工具,只是针对 java 代码做文本解析,没法做到像 idea 插件那样能获取到上下文环境。

再次感谢你的意见
barantt01
330 天前
@wuhunyu 关于这里第二点提到的 transient 这类情况,是属于序列化的问题。我这个工具本意还是根据实体类生成对应的 json 示例。不过利用 jackson 做入参映射这种情况确实是可以兼容的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1093095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX