博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java将字段映射成另一个字段,关于 接口传参 字段不对应转换
阅读量:5026 次
发布时间:2019-06-12

本文共 1620 字,大约阅读时间需要 5 分钟。

在接口开发中我们经常会遇到一个问题,打个比方,我们的实体类A中有两个字段user和pwd但是接口中需要username和password这怎么办呢,我想到了两种方法:

1.新创建一个实体类B或者new一个map,将A中的字段一个一个取出来再放到B中或者放到map中

这种方法如果字段少的话还好,但若是字段多那就太麻烦了。

2.这种方法我来详细说下:

首先新建一个实体类,我称之为中间实体类,为了简单我就不写那么多字段了

package com.qcr.jituan.sys.service.contract.impl;

import com.fasterxml.jackson.annotation.JsonAlias;

import com.fasterxml.jackson.annotation.JsonProperty;

public class SealSaveFieldSync {

 

@JsonProperty("sid")

private String pkSeal;//主键

@JsonProperty("bcode")

private String vssubtypecode;

@JsonProperty("pname")

private String vssubtypename;

@JsonProperty("porg")

private String vssubordid;

@JsonProperty("vorgname")

private String vssubordname;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

说明:数字1对应接口中的参数字段;数字2对应我们实体类中的字段

实体类写好了接下来就是重点了,为了代码的工整,我是直接提取出来一个方法

/**

* 实体类转Map
* @param seal
* @return
*/
public static HashMap<String, String> entityToMap(SealVO seal) {
HashMap<String, String> map = new HashMap();
for (Field field : seal.getClass().getDeclaredFields()){
try {
boolean flag = field.isAccessible();
field.setAccessible(true);
Object o = field.get(seal);
if (o != null){
Field contField = SealSaveFieldSync.class.getDeclaredField(field.getName());
JsonProperty voField = contField.getAnnotation(JsonProperty.class);
String s = voField.value();
map.put(s, o.toString());
}
field.setAccessible(flag);
} catch (Exception e) {
e.printStackTrace();
}
}
return map;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
代码中的seal是我的实体类,通过这种方法我们得到的数据是这样的:

通过这种方法可以简单快速的将实体类中一个字段名称,转换成了另一个字段!!

感谢阅读!!

--------------------- 

转载于:https://www.cnblogs.com/hyhy904/p/10954426.html

你可能感兴趣的文章
判断CPU大小端示例代码
查看>>
ARTS打卡第13周
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
pta 编程题14 Huffman Codes
查看>>
初始化bootstrap treeview树节点
查看>>
python selenium向<sapn>标签中写入内容
查看>>
JS常用坐标
查看>>
使用”结构化的思考方式“来编码和使用”流程化的思考方式“来编码,孰优孰劣?...
查看>>
C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
查看>>
关于git的认证方式
查看>>
字符串按照字典序排列
查看>>
IOS 开发调用打电话,发短信
查看>>
CI 框架中的日志处理 以及 404异常处理
查看>>
keepalived介绍
查看>>
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
样式、格式布局
查看>>
ubuntu设计文件权限
查看>>
Vue双向绑定原理详解
查看>>