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: 4 months 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 7 years ago)
- Default Branch: master
- Last Pushed: 2025-05-13T06:52:12.000Z (7 months ago)
- Last Synced: 2025-05-13T07:40:39.762Z (7 months ago)
- Topics: fastjson, gson, jackson, json, jsonfield, jsonproperty, serializedname
- Language: Kotlin
- Homepage:
- Size: 4.45 MB
- Stars: 22
- Watchers: 4
- 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`

## 示例演示

## 规则配置

# 其他
第一个版本,实现有点仓促,如果有问题,欢迎交流,xiaqiulei@126.com。
## 后续规划
* ~~支持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