Map中key值变换(驼峰,下划线,中横线) 您所在的位置:网站首页 驼峰式转下划线 Map中key值变换(驼峰,下划线,中横线)

Map中key值变换(驼峰,下划线,中横线)

2023-10-26 10:07| 来源: 网络整理| 查看: 265

写在前面 一、下划线 驼峰

1.1、hutool 代码示例

@Test public void t2() { Map a = new HashMap() {{ put("area_id", 100); put("area_Name", null); }}; Map b = new HashMap(); a.forEach((k,v) -> b.put(StrUtil.toCamelCase(k), v)); System.out.println(b); } // 结果 // {areaId=100, areaName=null} @Test public void t21() { Map a = new HashMap() {{ put("areaId", 100); put("areaName", null); }}; Map b = new HashMap(); a.forEach((k,v) -> b.put(StrUtil.toUnderlineCase(k), v)); System.out.println(b); } // {area_name=null, area_id=100}

1.2、Guava

@Test public void t3() { Map a = new HashMap() {{ put("area_id", 100); put("area_Name", null); }}; Map b = new HashMap(); a.forEach((k,v) -> b.put(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, k), v)); System.out.println(b); } // {areaId=100, areaName=null} @Test public void t31() { Map a = new HashMap() {{ put("areaId", 100); put("areaName", null); }}; Map b = new HashMap(); a.forEach((k,v) -> b.put(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, k), v)); System.out.println(b); } // // {area_name=null, area_id=100}

1.3、Gson + Hutool/Guava

这里其实Gson 并没具体实现下划线和 驼峰式的互转,只提供了 驼峰式 到 空格,下划线、中横线、首字母大写的单项转换, 从其他任何到驼峰式是没有实现的,不过Gson 提供了很方便的自定义转换策略,如下,

下面代码,Gson + Hutool 的实现下划线转驼峰命名 ,关于Gson 的相关操作学习,可参考,这里

@Test public void t19() { FieldNamingStrategy customPolicy = new FieldNamingStrategy() { @Override public String translateName(Field f) { return StrUtil.toCamelCase(f.getName()); } }; GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setFieldNamingStrategy(customPolicy); Gson gson = gsonBuilder.create(); UserNaming user = new UserNaming("Norman", "[email protected]", true, 26); String usersJson = gson.toJson(user); System.out.println(usersJson); }

对于其它形式的互转,除了Gson本身实现的几个,另外别的都是可以自定义实现转换规则的,这里就不再详细介绍说明了…

1.4、fastxml 的实现



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有