Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/liushuixiaoxia/serializednamegen
Auto add or remove json annotation plugin, such as gson SerializedName, fastjson JSONField, jackson JsonProperty. It also support java and kotlin file.
https://github.com/liushuixiaoxia/serializednamegen
fastjson gson jackson json jsonfield jsonproperty serializedname
Last synced: 6 days ago
JSON representation
Auto add or remove json annotation plugin, such as gson SerializedName, fastjson JSONField, jackson JsonProperty. It also support java and kotlin file.
- Host: GitHub
- URL: https://github.com/liushuixiaoxia/serializednamegen
- Owner: LiushuiXiaoxia
- License: apache-2.0
- Created: 2018-10-12T06:37:12.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-19T12:31:10.000Z (7 months ago)
- Last Synced: 2024-04-19T13:45:53.160Z (7 months ago)
- Topics: fastjson, gson, jackson, json, jsonfield, jsonproperty, serializedname
- Language: Kotlin
- Homepage:
- Size: 4.4 MB
- Stars: 22
- Watchers: 5
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gson SerializedName Gen
---
GsonSerializedNameGen 是一个自动生成Gson SerializedName注解的插件。
[IEDA插件仓库地址](https://plugins.jetbrains.com/plugin/11225-serializedname-tool)
[插件下载地址](https://github.com/LiushuiXiaoxia/SerializedNameGen/tree/master/jars)
[插件Github地址](https://github.com/LiushuiXiaoxia/SerializedNameGen)
# 介绍
有时候经常会维护一些老的项目,可能由于历史或开发人员能力问题,代码会稍微不规范。
比如在请求网络数据时会需要把json反序列化成实体,然后下面是常见的一种方式。
```java
public class Bean {public String Name;
public int max_age;
public class InnerA {public String Name;
public int max_age;
}public static class InnerB {
public String Name;
public int max_age;
}
}
```
上面的代码是很规范的,首先代码中字段名字命名规则是不满足驼峰规则的,其次需要添加json别名注解,比如常见的`Gson`,需要添加`@SerializedName`注解,否则不能进行代码混淆。一些有强迫症的程序员就会手动修改这些代码,但是是历史代码,可能一不小心就改坏了,修改需要一定的工作量,并且是重复劳动的工作,那么此工具就是干这样的事情的,使用工具优化后,就变成了下面样子。
```java
public class Bean {@SerializedName("Name")
public String Name;@SerializedName("max_age")
public int max_age;
public class InnerA {@SerializedName("Name")
public String Name;@SerializedName("max_age")
public int max_age;
}public static class InnerB {
@SerializedName("Name")
public String Name;@SerializedName("max_age")
public int max_age;
}
}
```# 使用姿势
## 支持特性
* 支持Gson SerializedName 注解添加与删除
* 支持Fastjson JSONField 注解添加与删除
* 支持Jackson JsonProperty 注解添加与删除
* 支持Java & Kotlin语言## 插件下载
[IEDA插件仓库地址](https://plugins.jetbrains.com/plugin/11225-serializedname-tool)
[插件下载地址](https://github.com/LiushuiXiaoxia/SerializedNameGen/tree/master/jars)
搜索 `SerializedName Tool`
![插件安装](https://raw.githubusercontent.com/LiushuiXiaoxia/SerializedNameGen/master/docs/4.png)
## 示例演示
![示例演示](https://raw.githubusercontent.com/LiushuiXiaoxia/SerializedNameGen/master/docs/3.gif)
## 规则配置
![示例演示](https://raw.githubusercontent.com/LiushuiXiaoxia/SerializedNameGen/master/docs/5.gif)
# 其他
第一个版本,实现有点仓促,如果有问题,欢迎交流,[email protected]。
## 后续规划
* ~~支持Kotlin语言~~
* ~~支持删除某一种json序列化工具别名~~
* ~~支持其他方式json序列化工具~~## 其他工具
[SerializedNameGen](https://github.com/LiushuiXiaoxia/SerializedNameGen)
[AutoValueConvert](https://github.com/LiushuiXiaoxia/AutoValueConvert)
[DatabindingConvert](https://github.com/LiushuiXiaoxia/DatabindingConvert)
# 日志
## v0.8
- 添加`FirstUppercase`生成规则
- 生成规则
* Origin
* Uppercase
* FirstUppercase
* Lowercase
* Underline
* Smart
## v0.7- 支持生成规则配置
- 生成规则
* Origin
* Uppercase
* Lowercase
* Underline
* Smart## v0.4
- 支持Gson SerializedName 注解添加与删除
- 支持Fastjson JSONField 注解添加与删除
- 支持Jackson JsonProperty 注解添加与删除
- 支持Java & Kotlin语言## v0.3
- 支持 Gson SerializedName 的删除
## v0.2
- 优化代码
## v0.1
- 第一个版本,实现基本功能,支持添加Gson SerializedName