首页 > 软件编程 > java > ObjectMapper复杂Map转实体类

如何用ObjectMapper将复杂Map转换为实体类

作者:墨一般的白色

这篇文章主要介绍了如何用ObjectMapper将复杂Map转换为实体类的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

ObjectMapper将复杂Map转为实体类

用fastjson转换复杂Map是浅层的可以转 深层的转换为null.,这时候可以用jackson来转。

1.使用ObjectMapper要添加的依赖是

<!--添加jackson包--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version> </dependency>

2.将复杂Map开始转换

ObjectMapper mapper = new ObjectMapper(); Resource resource = mapper.convertValue(Map, Resource.class);

注意的点:实体类中的字段是驼峰的 首字母不能大写。

objectMapper 解析复杂json toMap

public void parseSettings(){ String settings = "{\"基本设置\":{\"name\":\"基本设置\",\"entries\":[{\"name\":\"站号\",\"type\":\"number\",\"description\":\"\",\"value\":\"1\"},{\"name\":\"AppEUI\",\"type\":\"string\",\"description\":\"\",\"value\":\"2C26C503A0010006\"},{\"name\":\"DevEUI\",\"type\":\"string\",\"description\":\"\",\"value\":\"4A7703A000FC09\"},{\"name\":\"命令次数\",\"type\":\"number\",\"description\":\"\",\"value\":\"2\"},{\"name\":\"父井号\",\"type\":\"string\",\"description\":\"\",\"value\":\"test11\"}]},\"油阀间\":{\"name\":\"油阀间\",\"entries\":[{\"name\":\"上传间隔时间\",\"type\":\"number\",\"description\":\"\",\"value\":\"2\"},{\"name\":\"设定值\",\"type\":\"number\",\"description\":\"\",\"value\":\"10\"},{\"name\":\"波动值\",\"type\":\"number\",\"description\":\"\",\"value\":\"1\"},{\"name\":\"控制模式\",\"type\":\"number\",\"description\":\"\",\"value\":\"0\"},{\"name\":\"调节上限\",\"type\":\"number\",\"description\":\"\",\"value\":\"15\"},{\"name\":\"调节下限\",\"type\":\"number\",\"description\":\"\",\"value\":\"5\"},{\"name\":\"调节时间\",\"type\":\"number\",\"description\":\"\",\"value\":\"10\"}]},\"采集调度\":{\"name\":\"采集调度\",\"entries\":[{\"name\":\"interval\",\"type\":\"number\",\"description\":\"\",\"value\":\"2\"}]}}"; ObjectMapper objectMapper = new ObjectMapper(); JavaType javaType = objectMapper.getTypeFactory().constructMapType(HashMap.class, String.class, SettingGroup.class); try { Map<String,SettingGroup> mapSettings = objectMapper.readValue(settings, javaType); SettingGroup group = mapSettings.get("基本设置"); for (SettingEntry entry : group.getEntries()) { System.out.println(entry.getName()); group = mapSettings.get("油阀间"); for (SettingEntry entry : group.getEntries()) { System.out.println("entry.Name:"+entry.getName()+" entry.getValue:"+entry.getValue()); } catch (JsonParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonMappingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace();

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • 使用IDEA打jar包的详细图文教程
    使用IDEA打jar包的详细图文教程
    2022-08-08
  • java中@DateTimeFormat和@JsonFormat注解的使用
    java中@DateTimeFormat和@JsonFormat注解的使用
    2022-08-08
  • mybatis批量添加,批量更新之前如何判断是否已经存在
    mybatis批量添加,批量更新之前如何判断是否已经存在
    2022-08-08
  • Java使用通配符实现增强泛型详解
    Java使用通配符实现增强泛型详解
    2022-08-08
  • 如何将Object类转换为实体类
    如何将Object类转换为实体类
    2022-08-08
  • 使用jib插件为Java应用构建镜像的方法
    使用jib插件为Java应用构建镜像的方法
    2022-08-08
  • 使用@Autowired 注入RedisTemplate报错的问题及解决
    使用@Autowired 注入RedisTemplate报错的问题
    2022-08-08
  • MyBatisPlus超详细分析条件查询
    MyBatisPlus超详细分析条件查询
    2022-08-08
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号