JsonNode与对象之间的转换

使用情景:

        自己的项目中有一个情景,就是前端需要需要调用服务B,但是其中有些数据服务A需要保存,所以改为前端调用A,再由A调用B,至于为什么不直接B调用A,这是因为服务的上下级关系问题(最重要的是项目组长决定的)。Feign接口与Service是分开的两个模块。A服务的Feign接口中是不会去导入B服务的服务的Feign接口的。这时候如果使用对象接收,那么就需要A服务创建一个与B服务相同的DTO对象,这样的话A服务就参与维护了B服务的属性对象,这种做法是不明智的。所以A服务用JsonNode接收数据,到Service层级再将JsonNode转为B服务的DTO即可。

使用ObjectMapper来进行操作:

由于在SpringBoot中已经维护了ObjectMapper对象,因此只需要注入即可。

@Autowired
private ObjectMapper objectMapper;

 更推荐使用构造器注入

private final ObjectMapper objectMapper;

public 你的类名(ObjectMapper objectMapper) {
    this.objectMapper = objectMapper;
}

对象转为JsonNode

JsonNode data = objectMapper.valueToTree(需要转换的对象);

JsonNode转对象

你的对象类 变量名称 = objectMapper.convertValue(jsonNode, 你的对象类.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值