java将字段映射成另一个字段,关于 接口传参 字段不对应转换

您所在的位置:网站首页 数据库实体字段一直映射为空怎么办 java将字段映射成另一个字段,关于 接口传参 字段不对应转换

java将字段映射成另一个字段,关于 接口传参 字段不对应转换

2024-07-13 06:06| 来源: 网络整理| 查看: 265

java将字段映射成另一个字段,关于 接口传参 字段不对应转换

在接口开发中我们经常会遇到一个问题,打个比方,我们的实体类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对应我们实体类中的字段

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

/** * 实体类转Map * @param seal * @return */ public static HashMap entityToMap(SealVO seal) { HashMap 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; }

代码中的seal是我的实体类,通过这种方法我们得到的数据是这样的: 在这里插入图片描述

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

感谢阅读!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3