https://github.com/handsomestwei/auto-mapper
java json对象属性值自动映射转换
https://github.com/handsomestwei/auto-mapper
automapp java json model
Last synced: 2 months ago
JSON representation
java json对象属性值自动映射转换
- Host: GitHub
- URL: https://github.com/handsomestwei/auto-mapper
- Owner: handsomestWei
- License: apache-2.0
- Created: 2024-05-29T15:57:40.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-14T10:08:00.000Z (about 2 years ago)
- Last Synced: 2026-01-14T07:40:31.653Z (6 months ago)
- Topics: automapp, java, json, model
- Language: Java
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# auto-mapper
java json对象属性值自动映射转换
## 简介
只需提供json示例报文,自动生成对象schema;声明映射规则;使用schema id和规则id即可实现转换。
## 设计思路
### 解耦
+ 传统的工具,映射转换关系需要硬编码,需要生成pojo java文件;传统的json schema标准格式文件可读性较差
+ 基于xml文件,使用xml描述映射规则,使用xml保存json schema,提高可读和可维护性。减少胶水代码,且利用文件热更新能力,实现属性和规则的动态调整
+ 可用于上层低代码平台的接口生成、api网关的接口入出参管理、第三方接口对接开发等
### 属性映射
使用ali fastjson的JSONPath做属性路径访问。[path语法参考](https://github.com/alibaba/fastjson/wiki/JSONPath)
### 映射函数
当JSONPath不满足需求时,可编写函数实现复杂的映射转换,使用时在```rule规则描述xml```的```func```属性中声明函数名
#### 内置函数
内置了部分映射函数
#### 自定义
可扩展,支持编写自定义函数处理。以JDK SPI方式注册
## 使用说明
```
// step1 初始化。单例模式,全局做一次即可
AutoMapper autoMapper = AutoMapper.newInstance();
// step2 使用json示例自动生成json schema xml
String schemaId = "testJson";
SchemaUtil.createSchemaFile(schemaId, "for test", jsonData, schemaDir);
// step3 定义转换规则,编写rule.xml
String ruleId = "testRule";
// step4 对源pojo,依据规则,转换成目标testJson
JSONObject rs = AutoMapper.getInstance().map(srcObj, "testJson", "testRule");
```