BeanUtil.beanToMap()中,嵌套对象字段也转下划线
时间: 2024-01-28 14:05:32 浏览: 201
bean和map之间转换的帮助类
在使用`BeanUtil.beanToMap`方法将Java对象转换为Map时,如果需要将嵌套对象字段也转换为下划线格式,可以使用Hutool中的`BeanUtil.fillBeanWithMap`方法。
该方法可以将Map中的键值对填充到Java对象中,同时支持将Map中的下划线格式的键自动转换为驼峰格式的Java对象属性名,以及将Java对象属性名自动转换为下划线格式的键。
示例代码如下:
```java
// 定义Java对象
public class User {
private String name;
private int age;
private Address address;
// 省略getter/setter方法
}
public class Address {
private String province;
private String city;
// 省略getter/setter方法
}
// 将Java对象转换为Map
User user = new User();
user.setName("张三");
user.setAge(20);
Address address = new Address();
address.setProvince("广东省");
address.setCity("深圳市");
user.setAddress(address);
Map<String, Object> map = new HashMap<>();
BeanUtil.beanToMap(user, map, false, true);
System.out.println(map);
// 输出结果:{name=张三, age=20, address_province=广东省, address_city=深圳市}
```
在上面的示例中,通过设置`BeanUtil.fillBeanWithMap`方法的第三个参数为`false`,可以禁用Map中的驼峰格式的键自动转换为Java对象属性名。而通过设置第四个参数为`true`,可以启用Java对象属性名自动转换为下划线格式的键。这样,就可以将嵌套对象字段也转换为下划线格式。
阅读全文