将远程服务器获取的linkedhashMap对象转为实体类对象
微服务中从其他服务获取过来的对象,本来传的是实体类对象 , 但是接受到的参数却是linkedhashMap类型的对象 , 如果强转成自定义的实体类型会报错,因此可以利用ObjectMapper转换。
ObjectMapper mapper = new ObjectMapper();
DefaultResponse defaultResponse = proxy.getData();
List<Resource> resources = (<Resource>) defaultResponse.getData(); //这里的场景是:data是一个Object类型的,但是它其实是一个List<Resouce>,想把List中的每个对象分别转成可用的对象
for (int i = 0; i < serviceDateResources.size(); i++) {Resource resource = mapper.convertValue(resources.get(i), Resource.class); //经过这步处理,resource就是可用的类型了,如果不转化会报错
}
上面转换的过程中,如果返回的字段你不是都需要,需要忽略其中的几个字段,在自定义的类中添加如下:
import org.codehaus.jackson.annotate.JsonIgnoreProperties;@JsonIgnoreProperties(ignoreUnknown = true)public class Resource {// private Integer orderId; //提供有这个参数,但是不想获取private Integer otrerFiled;}
或者下面方法:这两种方法不用添加注解
一:ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD,Visibility.ANY);mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
二:ObjectMapper objectMapper = new ObjectMapper();mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
ObjectMapper可以实现对象到json等其他格式的互转。如果向将java对象转成Json格式,可以用:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(object);
会有JsonProcessingException异常,需要自己处理。在转换的过程中,有可能有的属性被设成空就不序列化等的需求,可以在类的属性上或直接在类上加上一下注解。用在属性上就是只针对一个属性,用在类上就是针对类里的所有属性。
@JsonInclude(Include.NON_NULL)
@JsonInclude(Include.Include.ALWAYS) 默认
@JsonInclude(Include.NON_DEFAULT) 属性为默认值不序列化
@JsonInclude(Include.NON_EMPTY) 属性为 空(“”) 或者为 NULL 都不序列化
@JsonInclude(Include.NON_NULL) 属性为NULL 不序列化
json转成Object 及 Object转json
DefaultResponse response = mapper.readValue(result, DefaultResponse.class);
String Json = mapper.writeValueAsString(student1);
mapper.readValue()过程中,如果result中的字段比DefaultResponse字段多会报错,忽略多余的字段在DefaultResponse中添加下面注解。
@JsonIgnoreProperties(ignoreUnknown = true)
转载:https://www.cnblogs.com/badboyf/p/6126511.html
将远程服务器获取的linkedhashMap对象转为实体类对象相关推荐
- JSON对象转为Java类对象
本文讲述两种方法,使JSON对象转为Java类对象.基于FastJson1 对于以下的JSON对象: {"message": "成功","code&q ...
- Datatable转为ListT / DataRow转为实体类对象
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...
- JSON字符串转为指定实体类对象
创建JsonStringToClass对象即可 package utils;import net.sf.json.JSONArray; import net.sf.json.JSONObject;im ...
- java获取实体类对象_java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- vue将二维数组对象转为一维数组对象
title: [{id: 1, name: '财会经济',children: [{id: 11, name: '初级会计'},{id: 12, name: '初级会计'}]},{id: 2, name ...
- Map对象与实体类Object对象转换
方法一 fastjson 转换 <dependency><groupId>com.alibaba</groupId><artifactId>fastjs ...
- C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务
场景 新建一个程序,需要对数据的表进行查询并将查询结果转换为实体类,然后将多个实体类 再插入到另一个数据库的表中,执行插入的过程中要使用事务. 注: 博客主页: https://blog.csdn.n ...
- C#中IEnumerableT.Distinct()将指定实体类对象用Lambda表达式实现多条件去重
背景说明 在EF等ORM框架中需要以List实体类的方式对数据进行大量操作,其中免不了对一些数据进行去重复,而C#中IEnumerable.Distinct()便提供了这一功能.只是对刚开始接触的新人 ...
- Java 判断实体类对象的全部属性是否空
代码: public boolean checkObjAllFieldsIsNull(Object object) {// 如果对象为null直接返回trueif (null == object) { ...
最新文章
- 每天只睡4小时!大佬们都这么拼吗?
- html显示隐藏密码,Web前端,登录密码显示隐藏眼睛
- javascript(arguments)
- JavaWeb图书管理系统day01
- 手写 new 操作符
- Java计算机毕业设计电脑小白网站源码+系统+数据库+lw文档
- 如何用php开发oa系统,oa系统怎么使用
- Vivado官网下载
- 载波与载波频率,中心频率的解释
- 论文解读:Decoupled Knowledge Distillation
- 8583协议深入理解 1
- Smartforms 总计小计
- 网站运营活动策划方案模板[转载]
- DELPHI关于汉字转拼音的一些想法
- 没有投屏标志怎么投屏_没有TV投屏标示,手机电脑电视该如何实现投屏
- php 课程设计总结心得体会,课程设计心得体会
- 计算机大赛指导老师自评怎么写,计算机*学生的简单自我评价
- Reso | mysql、SQLServer、Oracle的区别
- 创成汇:科技与艺术概念结合在手机上,效果居然这么强?_创成汇
- Docker学习(六):docker compose容器编排